knitr::opts_chunk$set(message=F, warning=F)
set.seed(12345) # for reproducibility
options(knitr.kable.NA = '')
# Some packages need to be loaded. We use `pacman` as a package manager, which takes care of the other packages.
if (!require("pacman", quietly = TRUE)) install.packages("pacman")
if (!require("Rmisc", quietly = TRUE)) install.packages("Rmisc") # Never load it directly.
pacman::p_load(tidyverse, papaja, knitr, ggplot2, car, lme4, afex, emmeans, parallel, ordinal, psych, gridExtra, MuMIn,
ggbeeswarm, RVAideMemoire, apaTables, scales, matlab, rcompanion, nortest, psycho, ggpubr)
devtools::install_github("thomasp85/patchwork")
remotes::install_github("rlesur/klippy")
library("patchwork"); library("klippy")
klippy::klippy()정상 시력의 학부생 38명이 인터넷 홈페이지를 통해 모집되었다(여 18명, 평균 연령 24.79세, 표준 편차 2.48). 이 중 2명의 참가자가 과도하게 낮은 수행 및 개인 사정으로 실험 중도에 제외되어, 총 36명이 실험에 참여하였다. 36명의 참가자는 실험 집단에 18명, 통제 집단에 18명 할당되었다. 참가자들은 실험에 앞서 서면으로 작성된 실험 참가 동의서에 서명하였으며, 25,000원 상당의 문화상품권을 참가 보상으로 수령하였다.
본 실험의 참가자 수는 예비 실험에 근거한 검증력 분석, 선행 연구의 참가자 수, 조건 간 역균형화를 고려하여 설정되었다. 검증력 분석은 G*Power 소프트웨어를 통해, 집단 간 출처 혼동과 침범에 대한 비대칭적 패턴 반응의 상호작용, 집단 간 예측 오류 조건에 따른 비단조적 침범 패턴의 상호작용 효과 크기를 80% 검증력으로 적용하여 수행되었다(Faul, Erdfelder, Lang, & Buchner, 2007). 2(집단: 실험 집단, 통제 집단) × 2(반응: 출처 혼동, 침범)의 두 요인 간 상호작용의 효과 크기(ηp2 = .23)을 바탕으로 표본수를 산출한 결과, 총 32명의 참가자 수가 필요한 것으로 나타났다. 또한, 비단조적 기억 갱신 효과와 관련된 2(집단: 실험 집단, 통제 집단) × 4(예측 오류 조건: PE 1, PE 2, PE 3, PE 4) 혼합 요인 분산 분석의 상호 작용의 효과 크기(ηp2)는 .35였다. 이를 세 예측 오류 조건의 본 실험 패러다임에 적용하여 산출된 표본수는 18명으로 나타났다. 두 번째로 본 실험과 유사한 패러다임을 사용한 연구의 표본수는 집단당 20명에서 48명으로 다양하였다. Hupbach 등(2009)의 첫 번째 실험에는 20명, Sinclear와 Barense(2018)에서는 실험 1에 48명, Forcato 등(2016)에선 36명의 참가자가 참여하였다. 마지막으로, 본 실험의 패러다임에서 예측 오류 조건은 각 참가자에게 제시된 색 단서에 따라 3가지로 구분되었기 때문에, 색 단서 - 오류 조건의 조합을 완전 역균형화하기 위해 최소 6명(3P3 = 6)이 각 집단에 할당될 필요가 있다. 이러한 점과 추정된 적정 참가자수를 고려하여 총 참가자 수는 36명으로 설정되었다.
장치 및 자극은 물체 자극을 제외하고 예비 실험과 동일하였다. 물체 자극은 예비 실험에서 사용된 자극에서 정체성을 알아보기 어렵거나 친숙하지 않다고 보고된 물체를 대체하고, 인터넷과 물체 모음집(Brady et al., 2008)에서 30개를 더 수집하여 총 270개의 물체 그림이 사용되었다. 물체(7.21°× 7.21°)는 색을 회색조로 조정한 후 각 회기에 제시되는 세 개의 물체 목록(목록 1, 목록 2, 목록 3)에 90개씩 무작위로 할당하였다. 목록 1과 목록 2에서 세 개의 하위 연합 기억을 형성하기 위해 세 가지 색을 사용한 연합 색 상자 자극(11.98°× 11.98°)을 구성하였다. 예비 실험의 연합 기억 학습에서 색에 따른 연합 기억 정확도를 비교한 결과, 첫 번째 색이었던 주황색에서 연합 기억 수행이 다른 색보다 전반적으로 낮았다, 주황색(M = 81.05, SD = 6.99), 노란색(M = 83.63, SD = 6.50), 파란색(M = 87.11, SD = 6.03), 초록색(M = 84.77, SD = 5.94). 이에 따라 세 가지 색은 주황색을 제외하고 노란색[255, 192, 0], 파란색[90, 155, 213], 초록색[112, 173, 70]으로 설정하였다.목록 1과 2 각각의 물체 90개는 세 가지 색에 30개 씩 무작위로 할당되었다.
본 실험의 설계는 2(집단: 실험 집단, 통제 집단) × 3(예측 오류: 0%-PE 1, 50%-PE 2, 100%-PE 3)의 혼합 요인 설계로 구성되었다. 전체적인 절차와 과제는 다음의 사항을 제외하고 예비 실험과 동일하였다(그림 5). 첫째, 각 회기의 시간 간격은 24~48시간에서 약 24시간으로 고정되었다. 둘째, 각 목록에 할당되는 물체가 90개로 증가함에 따라, 각 과제의 시행도 90 시행(연합 학습 및 검사 과제, 재활성화 과제), 360 시행(출처 및 연합 기억 검사)으로 조정되었다. 셋째, 예측 오류의 조건은 예비 실험의 네 조건에서 세 조건으로 축소되었다.
모든 통계 분석은 R(R Core Team, 2019) 프로그램을 사용하여 수행하였다. 구체적인 분석 방법은 예비 실험과 유사하였다. 물체 목록의 연합 기억이 성공적으로 형성되었는지 확인하기 위해, 정확도와 반응시간을 분석하였다. 반응시간의 전처리 절차는 동일하다.
셋째 날의 출처 기억 반응은 동일하게 여러 종속 변인으로 구분되었다. 주요 종속 변인은 목록 1 정확반응(List 1 Correct, L1→D1), 목록 2 정확반응(List 2 Correct, L2→D2), (Source Confusion, L1→D2), 침범(Intrusion, L2→D1)의 네 가지이고, 이 외에 목록 3 정확반응(List 3 Correct, L3→New), 목록 3 오경보 1과 2(List 3 False Alarm - Day 1&2, L3→D1&2), 목록 1 & 2 누락(Miss, L1&2→New)을 측정하였다.
추가로, 본 실험의 두 번째 가설인 예측 오류의 비단조적 기억 갱신 효과 분석을 보완하기 위해 침범 반응에 대한 모형 적합을 수행하였다. 모형 적합은 R의 lme4 패키지를 활용하는 혼합 효과 모형(mixed effect model)을 구성하여 수행되었다(Bates, Mächler, Bolker, & Walker, 2015). 혼합 효과 모형은 참가자 또는 자극에 의한 변산이 측정된 자료에 미칠 수 있는 무선 효과를 실험 조건을 반영하는 고정 효과와 함께 한 가지 모형에서 동시에 고려할 수 있도록 해준다(Baayen, Davidson, & Bates, 2008). 침범 반응 비율이 예측 오류에 따라 선형적으로 증가하는지, 아니면 역U자 패턴을 따르는지 확인하기 위해, 결과 자료를 선형 관계를 가정한 모형(y = b0 + b1x1 + e)과 비선형 관계를 가정한 모형(y = b0 + b1x1 + b2x12 + e)에 적합하였다. 각 모형에는 예측 오류 조건의 고정 효과뿐만 아니라, 참가자에 의한 무선 절편이 무선 효과로 포함되었다. 두 모형은 우도 비율 검정(likelihood ratio test, LRT)과 AIC(akaike information criterion) 및 BIC(bayesian information criterion)와 같은 모형 비교 지표를 통해 비교되었다.
마지막으로 출처 반응의 분석 결과를 보완하기 위해 출처 기억 확신도를 분석하였다. 연합 기억이 셋째 날까지 잘 유지되었는지 확인하기 위해 각 집단, 물체 목록에서 연합 기억 정확도 및 확신도 또한 분석하였다. 모든 추론 통계 분석은 혼합 요인 분산 분석 및 Tukey의 쌍별 비교 사후 검정 방법을 통해 수행되었으며, 구형성 가정이 충족되지 않으면 교정된 자유도 상수를 사용하였다.
학습 및 검사 절차를 통해 물체-색 연합의 기억이 안정적으로 형성되었는지 확인하기 위해, 각 집단에서 연합 기억 정확도와 반응 시간의 변화를 블록 반복에 따라 분석하였다.
set_sum_contrasts()
p1 <- read.csv("MemUdt_PE_d1t2_m.csv", header = T)
p2 <- read.csv("MemUdt_PE_d2t5_m.csv", header = T)
p1$List <- 1; p2$List <- 2
p12 <- rbind(p1, p2)
p12$SN = factor(p12$SN); p12$Btw = factor(p12$Btw)
p12$List = factor(p12$List, levels = c(1,2), labels=c("List1", "List2"))
p12$Block = factor(p12$Block, levels=c(1,2,3,4), labels=c("b1","b2","b3","b4"))
p12$cCue = factor(p12$cCue, levels=c(1,2,3), labels=c("c1","c2","c3"))
p12$CueName = factor(p12$CueName, labels=c("c1","c2","c3"))
p12$RT <- p12$RT*1000; p12$Corr <- as.numeric(p12$Corr==1)
p12 <- p12 %>% select(SN, Btw, List, Trial, Block, bTrial, cCue,
IMidx, IMname, CueName, Resp, RT, Corr)
glimpse(p12, width=70)
## Rows: 25,920
## Columns: 13
## $ SN <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ Btw <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ List <fct> List1, List1, List1, List1, List1, List1, List1, Lis…
## $ Trial <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1…
## $ Block <fct> b1, b1, b1, b1, b1, b1, b1, b1, b1, b1, b1, b1, b1, …
## $ bTrial <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1…
## $ cCue <fct> c1, c1, c1, c2, c3, c1, c1, c3, c3, c2, c2, c2, c2, …
## $ IMidx <int> 147, 56, 79, 100, 27, 142, 152, 93, 160, 87, 67, 159…
## $ IMname <chr> " man245.jpg", " man092.jpg", " man123.jpg", " man15…
## $ CueName <fct> c1, c1, c1, c2, c3, c1, c1, c3, c3, c2, c2, c2, c2, …
## $ Resp <int> 1, 2, 1, 2, 1, 1, 1, 7, 3, 2, 2, 2, 2, 1, 2, 2, 1, 3…
## $ RT <dbl> 836.9, 1539.0, 1603.3, 1298.2, 1644.7, 1336.8, 1104.…
## $ Corr <dbl> 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0…
# 1. SN: participant ID
# 2. Btw: between factor. 1-experimental group, 2-control group
# 3. List: study list. 1-List1, 2-List2
# 4. Trial: 1 ~ 360
# 5. Block: b1 ~ b4
# 6. bTrial: 1 ~ 90
# 7. cCue: association color cue condition. 1-c1, 2-c2, 3-c3
# 8. IMidx: index of stimuli
# 9. IMname: name of stimuli
# 10. CueName: name of color cue
# 11. Resp: association color cue response
# 12. RT: association color cue response time
# 13. Corr: color cue response correctness. 1-correct, 0-incorrect
length(unique(p12$SN))
## [1] 36
length(unique(p12$SN[p12$Btw==1]))
## [1] 18
length(unique(p12$SN[p12$Btw==2]))
## [1] 18
table(p12$List, p12$SN)
##
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## List1 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360
## List2 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360
##
## 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38
## List1 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360
## List2 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360연합 학습 검사 결과에서 집단과 목록, 블록 반복에 따른 정확도 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 목록 1, B는 목록 2를 나타내며, 각 모양의 점은 평균, 오차 막대는 95% 신뢰구간을 나타낸다. 점의 모양으로 두 집단이 구분되었다.
# phase 1, subject-level, long-format
p12.L.long.all <- p12 %>% group_by(SN, Btw, List, Block) %>%
dplyr::summarise(Accuracy = mean(Corr)*100) %>% ungroup()
p12.L.long.exp <- p12.L.long.all %>% filter(Btw == 1)
p12.L.long.con <- p12.L.long.all %>% filter(Btw == 2)
# wide format, needed for geom_segments.
p12.L.swide.all <- p12.L.long.all %>% spread(key = Block, value = Accuracy)
p12.L.swide.exp <- p12.L.swide.all %>% filter(Btw == 1)
p12.L.swide.con <- p12.L.swide.all %>% filter(Btw == 2)
# summary table
p12.L.g.all <- p12.L.long.all %>% group_by(Btw, List, Block) %>%
summarise(ACC.M = mean(Accuracy), SD = sd(Accuracy)) %>% ungroup()
p12.L.g.all$se <- Rmisc::summarySEwithin(data = p12.L.long.all, measurevar = "Accuracy", idvar = "SN", betweenvars ="Btw", withinvars = c("List","Block"))$se
p12.L.g.all$ci <- Rmisc::summarySEwithin(data = p12.L.long.all, measurevar = "Accuracy", idvar = "SN", betweenvars ="Btw", withinvars = c("List","Block"))$ci
p12.L.g.exp <- p12.L.g.all %>% filter(Btw == 1); p12.L.g.con <- p12.L.g.all %>% filter(Btw == 2)
p12.L.g.L1 <- p12.L.g.all %>% filter(List == "List1"); p12.L.g.L2 <- p12.L.g.all %>% filter(List == "List2")
p12.L.g.L1$Btw <- factor(p12.L.g.L1$Btw, labels=c("Experimental", "Control"))
p12.L.g.L2$Btw <- factor(p12.L.g.L2$Btw, labels=c("Experimental", "Control"))
# p12.L.g.all %>% kable(digit=2)목록 1 정확도
p12.L.g.L1 %>% kable(digit=2)| Btw | List | Block | ACC.M | SD | se | ci |
|---|---|---|---|---|---|---|
| Experimental | List1 | b1 | 65.86 | 9.74 | 1.94 | 4.10 |
| Experimental | List1 | b2 | 85.74 | 8.61 | 1.35 | 2.86 |
| Experimental | List1 | b3 | 93.46 | 4.80 | 0.77 | 1.63 |
| Experimental | List1 | b4 | 97.41 | 2.83 | 0.88 | 1.85 |
| Control | List1 | b1 | 59.57 | 9.35 | 1.16 | 2.45 |
| Control | List1 | b2 | 82.59 | 11.70 | 1.55 | 3.27 |
| Control | List1 | b3 | 92.28 | 6.30 | 0.62 | 1.30 |
| Control | List1 | b4 | 97.35 | 3.08 | 1.26 | 2.67 |
목록 2 정확도
p12.L.g.L2 %>% kable(digit=2)| Btw | List | Block | ACC.M | SD | se | ci |
|---|---|---|---|---|---|---|
| Experimental | List2 | b1 | 74.88 | 9.08 | 1.82 | 3.84 |
| Experimental | List2 | b2 | 91.23 | 5.22 | 1.14 | 2.41 |
| Experimental | List2 | b3 | 96.23 | 2.50 | 0.88 | 1.85 |
| Experimental | List2 | b4 | 98.64 | 1.11 | 0.83 | 1.75 |
| Control | List2 | b1 | 67.59 | 13.08 | 2.06 | 4.34 |
| Control | List2 | b2 | 87.41 | 9.83 | 1.17 | 2.47 |
| Control | List2 | b3 | 94.94 | 4.42 | 1.00 | 2.11 |
| Control | List2 | b4 | 97.22 | 2.33 | 1.32 | 2.78 |
물체 목록에 따른 집단별 정확도 그래프
p12.L.g.L1.plot1 <- ggplot(data=p12.L.g.L1,
aes(x=Block, y=ACC.M, ymin=ACC.M-ci, ymax=ACC.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(20,100), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Accuracy (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.35),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 1, 1, 1, "cm"),
legend.key = element_blank())
p12.L.g.L2.plot1 <- ggplot(data=p12.L.g.L2,
aes(x=Block, y=ACC.M, ymin=ACC.M-ci, ymax=ACC.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(20,100), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Accuracy (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.35),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 1, 1, 1, "cm"),
legend.key = element_blank())
d12_asc_acc_Main<- ggpubr::ggarrange(p12.L.g.L1.plot1, p12.L.g.L2.plot1, nrow = 1, ncol=2,
labels=c("A. List 1","B. List 2"),
hjust = -0.05, vjust=1, font.label = list(size = 20))
d12_asc_acc_Main두 집단의 물체 목록에 블록 반복에 따른 연합 기억 정확도 변화를 살펴보기 위해 참가자 간 변인인 집단과 참가자 내 변인인 목록 및 블록 반복을 요인으로 2 X 2 X 4 혼합 요인 분산분석을 수행하였다.
p12.L.long.all$Btw <- factor(p12.L.long.all$Btw, labels=c("Experimental", "Control"))
p12.acc.aov <- aov_ez(id = "SN", dv = "Accuracy", data = p12.L.long.all,
between = "Btw", within = c("List","Block"))
# test_levene(p12.acc.aov)
# test_sphericity(p12.acc.aov)
anova(p12.acc.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 228.153 | 2.961 | 0.080 | 0.094 |
| List | 1.000 | 34.000 | 34.788 | 37.140 | 0.522 | 0.000 |
| Btw:List | 1.000 | 34.000 | 34.788 | 0.321 | 0.009 | 0.575 |
| Block | 1.946 | 66.154 | 71.771 | 291.504 | 0.896 | 0.000 |
| Btw:Block | 1.946 | 66.154 | 71.771 | 2.940 | 0.080 | 0.061 |
| List:Block | 2.169 | 73.757 | 18.028 | 16.127 | 0.322 | 0.000 |
| Btw:List:Block | 2.169 | 73.757 | 18.028 | 0.094 | 0.003 | 0.923 |
분석 결과, 목록의 주효과, 블록 반복의 주효과, 목록과 블록 반복의 상호작용이 유의하였다.
p12.acc.m1 <- emmeans(p12.acc.aov, c("Block"), by = c("Btw","List"), type = "response")
p12.acc.m1.pair <- update(pairs(p12.acc.m1), by = "Btw", adjust = "tukey")
p12.acc.m1.pair %>% summary(infer = TRUE) %>% kable(digits=3)| contrast | Btw | List | estimate | SE | df | lower.CL | upper.CL | t.ratio | p.value |
|---|---|---|---|---|---|---|---|---|---|
| b1 - b2 | Experimental | List1 | -19.877 | 1.857 | 34 | -25.565 | -14.188 | -10.704 | 0.000 |
| b1 - b3 | Experimental | List1 | -27.593 | 1.683 | 34 | -32.749 | -22.436 | -16.390 | 0.000 |
| b1 - b4 | Experimental | List1 | -31.543 | 2.094 | 34 | -37.958 | -25.128 | -15.061 | 0.000 |
| b2 - b3 | Experimental | List1 | -7.716 | 1.375 | 34 | -11.926 | -3.506 | -5.614 | 0.000 |
| b2 - b4 | Experimental | List1 | -11.667 | 2.123 | 34 | -18.169 | -5.164 | -5.496 | 0.000 |
| b3 - b4 | Experimental | List1 | -3.951 | 1.132 | 34 | -7.417 | -0.484 | -3.491 | 0.016 |
| b1 - b2 | Control | List1 | -23.025 | 1.857 | 34 | -28.713 | -17.337 | -12.399 | 0.000 |
| b1 - b3 | Control | List1 | -32.716 | 1.683 | 34 | -37.873 | -27.559 | -19.433 | 0.000 |
| b1 - b4 | Control | List1 | -37.778 | 2.094 | 34 | -44.193 | -31.363 | -18.038 | 0.000 |
| b2 - b3 | Control | List1 | -9.691 | 1.375 | 34 | -13.902 | -5.481 | -7.051 | 0.000 |
| b2 - b4 | Control | List1 | -14.753 | 2.123 | 34 | -21.256 | -8.250 | -6.949 | 0.000 |
| b3 - b4 | Control | List1 | -5.062 | 1.132 | 34 | -8.528 | -1.595 | -4.473 | 0.001 |
| b1 - b2 | Experimental | List2 | -16.358 | 2.217 | 34 | -23.148 | -9.568 | -7.379 | 0.000 |
| b1 - b3 | Experimental | List2 | -21.358 | 2.330 | 34 | -28.495 | -14.221 | -9.166 | 0.000 |
| b1 - b4 | Experimental | List2 | -23.765 | 2.509 | 34 | -31.450 | -16.080 | -9.473 | 0.000 |
| b2 - b3 | Experimental | List2 | -5.000 | 1.331 | 34 | -9.076 | -0.924 | -3.758 | 0.008 |
| b2 - b4 | Experimental | List2 | -7.407 | 1.596 | 34 | -12.296 | -2.519 | -4.642 | 0.001 |
| b3 - b4 | Experimental | List2 | -2.407 | 0.650 | 34 | -4.398 | -0.416 | -3.704 | 0.009 |
| b1 - b2 | Control | List2 | -19.815 | 2.217 | 34 | -26.605 | -13.024 | -8.938 | 0.000 |
| b1 - b3 | Control | List2 | -27.346 | 2.330 | 34 | -34.483 | -20.208 | -11.736 | 0.000 |
| b1 - b4 | Control | List2 | -29.630 | 2.509 | 34 | -37.315 | -21.945 | -11.810 | 0.000 |
| b2 - b3 | Control | List2 | -7.531 | 1.331 | 34 | -11.606 | -3.455 | -5.660 | 0.000 |
| b2 - b4 | Control | List2 | -9.815 | 1.596 | 34 | -14.703 | -4.926 | -6.150 | 0.000 |
| b3 - b4 | Control | List2 | -2.284 | 0.650 | 34 | -4.275 | -0.293 | -3.514 | 0.015 |
집단과 목록에서 블록에 의한 차이를 사후 분석한 결과, 두 집단 모두 각 목록에서 블록 반복에 따라 정확도가 향상되었다.
# plot(p12.acc.m1, horizontal=F, comparisons=T) +
# theme(panel.grid.major = element_blank(),
# panel.grid.minor = element_blank())두 집단의 물체 목록에서 마지막 블록의 연합 기억 정확도 변화를 살펴보기 위해 참가자 간 변인인 집단과 참가자 내 변인인 목록을 요인으로 2 X 2 혼합 요인 분산분석을 수행하였다.
p12.L.long.b4.all <- p12.L.long.all %>% filter(Block=="b4")
p12.b4.acc.aov <- aov_ez(id = "SN", dv = "Accuracy", data = p12.L.long.b4.all,
between = "Btw", within = c("List"))
# test_levene(p12.b4.acc.aov)
# test_sphericity(p12.b4.acc.aov)
anova(p12.b4.acc.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 9.735 | 1.015 | 0.029 | 0.321 |
| List | 1 | 34 | 2.316 | 2.399 | 0.066 | 0.131 |
| Btw:List | 1 | 34 | 2.316 | 3.584 | 0.095 | 0.067 |
분석 결과, 모든 효과가 유의하지 않았다.
p12.b4.acc.m1 <- emmeans(p12.b4.acc.aov, c("List","Btw"), by = NULL, type = "response")
p12.b4.acc.m1.pair <- update(pairs(p12.b4.acc.m1), by = NULL, adjust = "tukey")
p12.b4.acc.m1.pair %>% summary(infer = TRUE) %>% kable(digits=3)| contrast | estimate | SE | df | lower.CL | upper.CL | t.ratio | p.value |
|---|---|---|---|---|---|---|---|
| List1 Experimental - List2 Experimental | -1.235 | 0.507 | 34 | -2.605 | 0.135 | -2.434 | 0.090 |
| List1 Experimental - List1 Control | 0.062 | 0.985 | 34 | -2.597 | 2.721 | 0.063 | 1.000 |
| List1 Experimental - List2 Control | 0.185 | 0.818 | 34 | -2.025 | 2.395 | 0.226 | 0.996 |
| List2 Experimental - List1 Control | 1.296 | 0.818 | 34 | -0.914 | 3.506 | 1.584 | 0.401 |
| List2 Experimental - List2 Control | 1.420 | 0.608 | 34 | -0.222 | 3.062 | 2.335 | 0.110 |
| List1 Control - List2 Control | 0.123 | 0.507 | 34 | -1.247 | 1.493 | 0.243 | 0.995 |
사후 분석 결과, 실험 집단의 목록 2 정확도가 실험 집단의 목록 1, 통제 집단의 목록 1과 목록 2보다 수치적으로 우수하였으나 통계적으로 유의한 차이가 나타나지 않았다.
plot(p12.b4.acc.m1, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())분산 분석 결과를 보충하기 위해 블록 4의 연합 기억 정확도에 대하여 일반화 선형 혼합 모형(일반화 선형 혼합 모형; GLMM)을 검증하였다. 집단과 목록의 고정 효과(fixed effect)와 참가자와 자극 항목에 대한 무선 절편을 무선 효과(random effect)로 포함한 p12.b4.Acc.Model을 구성하였다.
p12.b4 <- p12 %>% filter(Block=="b4")
p12.b4$Block <- factor(p12.b4$Block)
p12.b4$Btw <- factor(p12.b4$Btw, labels=c("Experimental", "Control"))
(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p12.b4.Acc.Model.1 <- afex::mixed(Corr ~ Btw*List + (1|SN) + (1|IMname),
p12.b4, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p12.b4.Acc.Model.1, file="L1&2b4_Acc_afex.Rdata")
stopCluster(cl)anova(p12.b4.Acc.Model.1) %>% kable(digits=3)분석 결과, 집단과 목록의 상호작용이 유의하였다.
p12.b4.acc.m2 <- emmeans(p12.b4.Acc.Model.1, c("List","Btw"), by = NULL, type = "response")
p12.b4.acc.m2.pair <- update(pairs(p12.b4.acc.m2), by = NULL, adjust = "tukey")
p12.b4.acc.m2.pair %>% summary(infer = TRUE) %>% kable(digits=3)사후 분석 결과, 분산 분석과 같이 실험 집단의 목록 2 정확도가 실험 집단의 목록 1, 통제 집단의 목록 1과 목록 2보다 수치적으로 우수하였으나 통계적으로 유의한 차이가 나타나지 않았다.
plot(p12.b4.acc.m2, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())연합 기억 수행의 반응시간을 분석하였다.
p12.acc.trial <- p12 %>% group_by(SN) %>%
summarise(Accuracy = mean(Corr)*100) %>%
ungroup() %>% summarise(M = mean(Accuracy), SD = sd(Accuracy))
cp12.all <- p12 %>% filter(Corr==1)
sp12.all <- cp12.all %>% filter(RT > 150) %>%
group_by(SN) %>%
nest() %>%
mutate(lbound = map(data, ~mean(.$RT)-3*sd(.$RT)),
ubound = map(data, ~mean(.$RT)+3*sd(.$RT))) %>%
unnest(c(lbound, ubound)) %>%
unnest(data) %>%
ungroup() %>%
mutate(Outlier = (RT < lbound)|(RT > ubound)) %>%
filter(Outlier == FALSE) %>%
select(SN, Btw, List, Block, cCue, CueName, Resp, RT, Corr, IMname)
100 - 100*nrow(sp12.all)/nrow(cp12.all)
## [1] 2.174593
## [1] 2.174593연합 기억 검사에서 정확하게 반응한 시행(M = 86.4%, SD = 5.49%)의 반응 시간 자료만 분석하였다. 가외치 제거 결과, 정확반응 시행의 반응시간 자료에서 2.17%가 제거되었다.
sp12.all %>% group_by(SN, Btw, Block) %>%
summarise(NumTrial = length(RT)) %>%
ungroup %>%
group_by(Btw, Block) %>%
summarise(Avg = mean(NumTrial),
Med = median(NumTrial),
Min = min(NumTrial),
Max = max(NumTrial)) %>%
ungroup %>% kable(digit=2)| Btw | Block | Avg | Med | Min | Max |
|---|---|---|---|---|---|
| 1 | b1 | 120.67 | 124.0 | 92 | 139 |
| 1 | b2 | 155.33 | 155.0 | 132 | 172 |
| 1 | b3 | 168.50 | 169.0 | 157 | 176 |
| 1 | b4 | 175.33 | 177.0 | 166 | 180 |
| 2 | b1 | 108.17 | 110.0 | 81 | 141 |
| 2 | b2 | 150.50 | 154.5 | 104 | 173 |
| 2 | b3 | 166.00 | 166.0 | 142 | 176 |
| 2 | b4 | 172.61 | 173.0 | 153 | 180 |
dens1 <- ggplot(cp12.all, aes(x=RT)) +
geom_density() +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank())
dens2 <- ggplot(sp12.all, aes(x=RT)) +
geom_density() +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank())
dens1 + dens2집단과 목록, 블록 반복에 따른 반응시간 평균과 표준편차를 계산하였다. 두 집단 모두에서 블록 진행에 따라 연합 기억 검사의 반응시간이 향상되었다. 아래의 그래프에서 A는 목록 1, B는 목록 2를 나타내며, 각 모양의 점은 평균, 오차 막대는 95% 신뢰구간을 나타낸다. 점의 모양으로 두 집단이 구분되었다.
# long format
p12.L.rt.long.all <- sp12.all %>% group_by(SN, Btw, List, Block) %>%
summarise(RT = mean(RT)) %>%
ungroup()
p12.L.rt.long.exp <- p12.L.rt.long.all %>% filter(Btw==1)
p12.L.rt.long.con <- p12.L.rt.long.all %>% filter(Btw==2)
# wide format
p12.L.rt.swide.all <- p12.L.rt.long.all %>% spread(key = Block, value = RT)
p12.L.rt.swide.exp <- p12.L.rt.swide.all %>% filter(Btw==1)
p12.L.rt.swide.con <- p12.L.rt.swide.all %>% filter(Btw==2)
# summary table
p12.L.rt.g.all <- p12.L.rt.long.all %>% group_by(Btw, List, Block) %>%
summarise(RT.M = mean(RT), SD = sd(RT)) %>% ungroup()
p12.L.rt.g.all$se <- Rmisc::summarySEwithin(data = p12.L.rt.long.all, measurevar = "RT",
idvar = "SN", betweenvars = "Btw", withinvars = c("List","Block"))$se
p12.L.rt.g.all$ci <- Rmisc::summarySEwithin(data = p12.L.rt.long.all, measurevar = "RT",
idvar = "SN", betweenvars = "Btw", withinvars = c("List","Block"))$ci
p12.L.rt.g.all$Btw <- factor(p12.L.rt.g.all$Btw, labels=c("Experimental", "Control"))
p12.L.rt.g.L1 <- p12.L.rt.g.all %>% filter(List == "List1")
p12.L.rt.g.L2 <- p12.L.rt.g.all %>% filter(List == "List2")
# p12.L.rt.g.all %>% kable(digit=2)목록 1 반응시간
p12.L.rt.g.L1 %>% kable(digits=2)| Btw | List | Block | RT.M | SD | se | ci |
|---|---|---|---|---|---|---|
| Experimental | List1 | b1 | 798.36 | 146.75 | 26.96 | 56.89 |
| Experimental | List1 | b2 | 630.75 | 145.81 | 24.32 | 51.31 |
| Experimental | List1 | b3 | 518.71 | 114.90 | 16.99 | 35.84 |
| Experimental | List1 | b4 | 460.25 | 104.89 | 17.28 | 36.47 |
| Control | List1 | b1 | 742.32 | 140.43 | 30.58 | 64.53 |
| Control | List1 | b2 | 607.87 | 147.11 | 25.81 | 54.45 |
| Control | List1 | b3 | 525.47 | 143.88 | 25.72 | 54.26 |
| Control | List1 | b4 | 467.58 | 105.57 | 15.83 | 33.39 |
목록 2 반응시간
p12.L.rt.g.L2 %>% kable(digits=2)| Btw | List | Block | RT.M | SD | se | ci |
|---|---|---|---|---|---|---|
| Experimental | List2 | b1 | 752.95 | 100.39 | 23.77 | 50.15 |
| Experimental | List2 | b2 | 568.68 | 109.87 | 20.53 | 43.31 |
| Experimental | List2 | b3 | 479.64 | 111.37 | 22.72 | 47.94 |
| Experimental | List2 | b4 | 470.50 | 90.17 | 21.28 | 44.90 |
| Control | List2 | b1 | 738.26 | 182.86 | 28.79 | 60.74 |
| Control | List2 | b2 | 575.84 | 164.23 | 23.84 | 50.30 |
| Control | List2 | b3 | 483.41 | 152.46 | 28.30 | 59.71 |
| Control | List2 | b4 | 459.82 | 115.93 | 21.47 | 45.29 |
물체 목록에 따른 집단별 반응시간 그래프
p12.L.rt.g.L1.plot1 <- ggplot(data=p12.L.rt.g.L1 ,
aes(x=Block, y=RT.M, ymin=RT.M-ci, ymax=RT.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,1800), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Response Time (ms)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.85),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 1, 1, 1, "cm"),
legend.key = element_blank())
p12.L.rt.g.L2.plot1 <- ggplot(data=p12.L.rt.g.L2 ,
aes(x=Block, y=RT.M, ymin=RT.M-ci, ymax=RT.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,1800), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Response Time (ms)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.85),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 1, 1, 1, "cm"),
legend.key = element_blank())
d12_asc_rt_Main<- ggpubr::ggarrange(p12.L.rt.g.L1.plot1, p12.L.rt.g.L2.plot1, nrow = 1, ncol=2,
labels=c("A. List 1","B. List 2"),
hjust = -0.05, vjust=1, font.label = list(size = 20))
d12_asc_rt_Main두 집단의 물체 목록에 블록 반복에 따른 연합 기억 반응시간 변화를 살펴보기 위해 참가자 간 변인인 집단과 참가자 내 변인인 목록 및 블록 반복을 요인으로 2 X 2 X 4 혼합 요인 분산분석을 수행하였다.
p12.L.rt.long.all$Btw <- factor(p12.L.rt.long.all$Btw, labels=c("Experimental", "Control"))
p12.rt.aov <- aov_ez(id = "SN", dv = "RT", data = p12.L.rt.long.all, between = "Btw", within = c("List","Block"))
# test_levene(p12.rt.aov)
# test_sphericity(p12.rt.aov)
anova(p12.rt.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 68854.735 | 0.103 | 0.003 | 0.751 |
| List | 1.000 | 34.000 | 46945.987 | 1.183 | 0.034 | 0.284 |
| Btw:List | 1.000 | 34.000 | 46945.987 | 0.061 | 0.002 | 0.807 |
| Block | 1.973 | 67.073 | 5958.685 | 314.635 | 0.902 | 0.000 |
| Btw:Block | 1.973 | 67.073 | 5958.685 | 1.455 | 0.041 | 0.241 |
| List:Block | 1.916 | 65.145 | 6491.398 | 2.007 | 0.056 | 0.145 |
| Btw:List:Block | 1.916 | 65.145 | 6491.398 | 0.836 | 0.024 | 0.434 |
분석 결과, 블록 반복의 주효과가 유의하였다.
p12.rt.m1 <- emmeans(p12.rt.aov, c("Block"), by = c("Btw","List"), type = "response")
p12.rt.m1.pair <- update(pairs(p12.rt.m1), by = "Btw", adjust = "tukey")
p12.rt.m1.pair %>% summary(infer = TRUE) %>% kable(digits=3)| contrast | Btw | List | estimate | SE | df | lower.CL | upper.CL | t.ratio | p.value |
|---|---|---|---|---|---|---|---|---|---|
| b1 - b2 | Experimental | List1 | 167.604 | 18.044 | 34 | 112.332 | 222.875 | 9.288 | 0.000 |
| b1 - b3 | Experimental | List1 | 279.650 | 23.700 | 34 | 207.054 | 352.246 | 11.800 | 0.000 |
| b1 - b4 | Experimental | List1 | 338.103 | 25.677 | 34 | 259.451 | 416.754 | 13.168 | 0.000 |
| b2 - b3 | Experimental | List1 | 112.046 | 16.671 | 34 | 60.981 | 163.112 | 6.721 | 0.000 |
| b2 - b4 | Experimental | List1 | 170.499 | 21.058 | 34 | 105.996 | 235.001 | 8.097 | 0.000 |
| b3 - b4 | Experimental | List1 | 58.453 | 15.779 | 34 | 10.121 | 106.784 | 3.705 | 0.009 |
| b1 - b2 | Control | List1 | 134.446 | 18.044 | 34 | 79.174 | 189.717 | 7.451 | 0.000 |
| b1 - b3 | Control | List1 | 216.842 | 23.700 | 34 | 144.246 | 289.438 | 9.149 | 0.000 |
| b1 - b4 | Control | List1 | 274.736 | 25.677 | 34 | 196.085 | 353.387 | 10.700 | 0.000 |
| b2 - b3 | Control | List1 | 82.396 | 16.671 | 34 | 31.331 | 133.461 | 4.942 | 0.000 |
| b2 - b4 | Control | List1 | 140.290 | 21.058 | 34 | 75.788 | 204.792 | 6.662 | 0.000 |
| b3 - b4 | Control | List1 | 57.894 | 15.779 | 34 | 9.562 | 106.225 | 3.669 | 0.010 |
| b1 - b2 | Experimental | List2 | 184.264 | 20.164 | 34 | 122.499 | 246.029 | 9.138 | 0.000 |
| b1 - b3 | Experimental | List2 | 273.308 | 27.849 | 34 | 188.004 | 358.613 | 9.814 | 0.000 |
| b1 - b4 | Experimental | List2 | 282.446 | 29.221 | 34 | 192.937 | 371.954 | 9.666 | 0.000 |
| b2 - b3 | Experimental | List2 | 89.044 | 15.779 | 34 | 40.713 | 137.376 | 5.643 | 0.000 |
| b2 - b4 | Experimental | List2 | 98.182 | 19.761 | 34 | 37.651 | 158.713 | 4.968 | 0.000 |
| b3 - b4 | Experimental | List2 | 9.137 | 13.553 | 34 | -32.376 | 50.651 | 0.674 | 1.000 |
| b1 - b2 | Control | List2 | 162.424 | 20.164 | 34 | 100.659 | 224.189 | 8.055 | 0.000 |
| b1 - b3 | Control | List2 | 254.850 | 27.849 | 34 | 169.545 | 340.154 | 9.151 | 0.000 |
| b1 - b4 | Control | List2 | 278.441 | 29.221 | 34 | 188.932 | 367.949 | 9.529 | 0.000 |
| b2 - b3 | Control | List2 | 92.426 | 15.779 | 34 | 44.094 | 140.757 | 5.858 | 0.000 |
| b2 - b4 | Control | List2 | 116.017 | 19.761 | 34 | 55.485 | 176.548 | 5.871 | 0.000 |
| b3 - b4 | Control | List2 | 23.591 | 13.553 | 34 | -17.922 | 65.104 | 1.741 | 0.681 |
집단과 목록에서 블록에 의한 차이를 사후 분석한 결과, 두 집단 모두 각 목록에서 블록 반복에 따라 정확도가 향상되었다.
plot(p12.rt.m1, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())사후 분석 결과, 두 집단 모두 각 목록에서 반복에 따라 반응속도가 향상되었다.
두 집단의 물체 목록에서 마지막 블록의 연합 기억 반응시간 변화를 살펴보기 위해 참가자 간 변인인 집단과 참가자 내 변인인 목록을 요인으로 2 X 2 혼합 요인 분산분석을 수행하였다.
p12.L.rt.long.b4.all <- p12.L.rt.long.all %>% filter(Block=="b4")
p12.b4.rt.aov <- aov_ez(id = "SN", dv = "RT", data = p12.L.rt.long.b4.all,
between = "Btw", within = c("List"))
# test_levene(p12.b4.rt.aov)
# test_sphericity(p12.b4.rt.aov)
anova(p12.b4.rt.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 13482.011 | 0.004 | 0.000 | 0.951 |
| List | 1 | 34 | 8377.378 | 0.003 | 0.000 | 0.954 |
| Btw:List | 1 | 34 | 8377.378 | 0.174 | 0.005 | 0.679 |
분석 결과, 모든 효과가 유의하지 않았다.
p12.b4.rt.m1 <- emmeans(p12.b4.rt.aov, c("List","Btw"), by = NULL, type = "response")
p12.b4.rt.m1.pair <- update(pairs(p12.b4.rt.m1), by = NULL, adjust = "tukey")
p12.b4.rt.m1.pair %>% summary(infer = TRUE) %>% kable(digits=3)| contrast | estimate | SE | df | lower.CL | upper.CL | t.ratio | p.value |
|---|---|---|---|---|---|---|---|
| List1 Experimental - List2 Experimental | -10.248 | 30.509 | 34 | -92.648 | 72.151 | -0.336 | 0.987 |
| List1 Experimental - List1 Control | -7.325 | 35.077 | 34 | -102.061 | 87.411 | -0.209 | 0.997 |
| List1 Experimental - List2 Control | 0.435 | 34.848 | 34 | -93.684 | 94.554 | 0.012 | 1.000 |
| List2 Experimental - List1 Control | 2.923 | 34.848 | 34 | -91.195 | 97.042 | 0.084 | 1.000 |
| List2 Experimental - List2 Control | 10.684 | 34.618 | 34 | -82.814 | 104.181 | 0.309 | 0.990 |
| List1 Control - List2 Control | 7.760 | 30.509 | 34 | -74.639 | 90.160 | 0.254 | 0.994 |
사후 분석 결과, 모든 비교에서 통계적으로 유의한 차이가 나타나지 않았다.
plot(p12.b4.rt.m1, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())분산 분석 결과를 보충하기 위해 블록 4의 연합 기억 반응시간에 대하여 일반화 선형 혼합 모형(일반화 선형 혼합 모형; GLMM)을 검증하였다. 편포를 보이는 반응시간 분포를 고려하여 반응시간 분포에 적합한 inverse Gaussian distribution과 RT와 predictors 간의 linear relationship(identity link function)을 가정한 일반화 선형 혼합 모형 p12.b4.RT.Model을 구성하였다(Lo & Andrews, 2015). 집단과 목록의 고정 효과(fixed effect)와 참가자와 자극 항목에 대한 무선 절편을 무선 효과(random effect)로 포함하였다.
p12.b4.rt <- sp12.all %>% filter(Block=="b4")
p12.b4.rt$Block <- factor(p12.b4.rt$Block)
p12.b4.rt$Btw <- factor(p12.b4.rt$Btw, labels=c("Experimental", "Control"))
(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p12.b4.RT.Model.1 <- afex::mixed(RT ~ Btw*List + (1|SN) + (1|IMname),
p12.b4.rt, method = "LRT", cl = cl, expand_re=T,
family=inverse.gaussian(link="identity"),
control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 1e6)))
save(p12.b4.RT.Model.1, file="L1&2b4_RT_afex.Rdata")
stopCluster(cl)anova(p12.b4.RT.Model.1) %>% kable(digits=3)분석 결과, 목록의 주효과, 집단과 목록의 상호작용이 유의하였다.
p12.b4.rt.m2 <- emmeans(p12.b4.RT.Model.1, c("List","Btw"), by = NULL, type = "response")
p12.b4.rt.m2.pair <- update(pairs(p12.b4.rt.m2), by = NULL, adjust = "tukey")
p12.b4.rt.m2.pair %>% summary(infer = TRUE) %>% kable(digits=3)사후 분석 결과, 실험 집단의 목록 2 반응시간이 목록 1보다 우수한 것으로 나타났다.
plot(p12.b4.rt.m2, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())목록 1 연합 기억 검사의 정확도와 반응시간을 집단별로 함께 나타난 그래프는 아래와 같다.
연합 학습 수행 검사의 정확도와 반응시간을 목록별로 함께 나타난 그래프는 아래와 같다.
p12.L.g.L1.plot1 <- ggplot(data=p12.L.g.L1,
aes(x=Block, y=ACC.M, ymin=ACC.M-ci, ymax=ACC.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(20,100), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Accuracy (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.35),
legend.title = element_blank(),
aspect.ratio = 0.6,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
p12.L.g.L2.plot1 <- ggplot(data=p12.L.g.L2,
aes(x=Block, y=ACC.M, ymin=ACC.M-ci, ymax=ACC.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(20,100), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Accuracy (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.35),
legend.title = element_blank(),
aspect.ratio = 0.6,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
p12.L.rt.g.L1.plot1 <- ggplot(data=p12.L.rt.g.L1 ,
aes(x=Block, y=RT.M, ymin=RT.M-ci, ymax=RT.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,1800), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Response Time (ms)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.85),
legend.title = element_blank(),
aspect.ratio = 0.6,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
p12.L.rt.g.L2.plot1 <- ggplot(data=p12.L.rt.g.L2 ,
aes(x=Block, y=RT.M, ymin=RT.M-ci, ymax=RT.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,1800), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Response Time (ms)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.85),
legend.title = element_blank(),
aspect.ratio = 0.6,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
d12_asc_all_Main<- ggpubr::ggarrange(p12.L.g.L1.plot1, p12.L.g.L2.plot1, p12.L.rt.g.L1.plot1, p12.L.rt.g.L2.plot1,
nrow = 2, ncol=2, labels=c("A. List 1","B. List 2"," "," "),
hjust = -0.05, vjust=1, font.label = list(size = 20))
d12_asc_all_Main# ggsave("d12_asc_all_Main.jpg", plot = d12_asc_all_Main, width=8, height=6, unit='in', dpi=600)## load data
p3 <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3$SN = factor(p3$SN); p3$Btw = factor(p3$Btw)
p3$cSrc = factor(p3$cSrc, levels=c(1,2,3), labels=c("List_1","List_2","List_3"))
p3$cCue = factor(p3$cCue, levels=c(1,2,3,0), labels=c("cc1","cc2","cc3","cc0"))
p3$cPE = factor(p3$cPE, levels=c(1,2,3,0), labels=c("pe1","pe2","pe3","pe0"))
p3$CueName = factor(p3$CueName, labels=c("c0","c1","c2","c3"))
p3$Resp <- factor(p3$Resp, levels=c(1,2,3), labels=c("Day_1", "Day_2", "New"))
p3$Correct <- as.numeric(p3$Corr==1); p3$Int <- as.numeric(p3$Corr==3);
p3$Err <- as.numeric(p3$Corr==2); p3$sErr <- as.numeric(p3$Corr==3 | p3$Corr==2);
p3$Incorr <- as.numeric(p3$Corr==0); p3$aCorr <- as.numeric(p3$aCorr==1);
p3 <- p3 %>% unite(cSrc_Resp, c(cSrc,Resp), remove=FALSE) %>% rename(tRsp = "cSrc_Resp")
p3$tRsp[p3$tRsp=='List_1_Day_1'] <- 'List 1 Correct'
p3$tRsp[p3$tRsp=='List_2_Day_2'] <- 'List 2 Correct'
p3$tRsp[p3$tRsp=='List_1_Day_2'] <- 'Source Confusion'
p3$tRsp[p3$tRsp=='List_2_Day_1'] <- 'Intrusion'
p3$tRsp[p3$tRsp=='List_1_New'] <- 'List 1 Miss'
p3$tRsp[p3$tRsp=='List_2_New'] <- 'List 2 Miss'
p3$tRsp[p3$tRsp=='List_3_New'] <- 'List 3 Correct'
p3$tRsp[p3$tRsp=='List_3_Day_1'] <- 'List 3 FA - Day 1'
p3$tRsp[p3$tRsp=='List_3_Day_2'] <- 'List 3 FA - Day 2'
p3$tRsp <- factor(p3$tRsp, levels=c('List 1 Correct', 'List 2 Correct', 'Source Confusion',
'Intrusion', 'List 1 Miss', 'List 2 Miss',
'List 3 Correct', 'List 3 FA - Day 1', 'List 3 FA - Day 2'))
p3 <- p3 %>% select(SN, Btw, Trial, tRsp, cSrc, cCue, cPE, IMname, Resp, Corr, Conf,
aResp, aCorr, aConf, Correct, Int, Err, Incorr)
glimpse(p3, width = 70)
## Rows: 9,720
## Columns: 18
## $ SN <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ Btw <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ Trial <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1…
## $ tRsp <fct> List 3 Correct, List 1 Correct, List 1 Correct, List…
## $ cSrc <fct> List_3, List_1, List_1, List_2, List_1, List_3, List…
## $ cCue <fct> cc0, cc2, cc2, cc2, cc2, cc0, cc3, cc3, cc2, cc3, cc…
## $ cPE <fct> pe0, pe2, pe2, pe2, pe2, pe0, pe1, pe1, pe2, pe1, pe…
## $ IMname <chr> " man114.jpg", " man066.jpg", " man133.jpg", " man14…
## $ Resp <fct> New, Day_1, Day_1, Day_2, Day_1, New, Day_2, Day_2, …
## $ Corr <int> 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1…
## $ Conf <int> 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, 4, 4, 4…
## $ aResp <int> 7, 2, 2, 2, 2, 7, 3, 1, 2, 3, 7, 2, 2, 1, 1, 7, 1, 7…
## $ aCorr <dbl> 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0…
## $ aConf <int> 7, 4, 4, 4, 4, 7, 4, 4, 4, 4, 7, 4, 4, 4, 4, 7, 4, 7…
## $ Correct <dbl> 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1…
## $ Int <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0…
## $ Err <dbl> 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ Incorr <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
# 1. SN: participant ID
# 2. Btw: between-participants factor. 1-experimental group, 2-control group
# 3. Trial: 1 ~ 360
# 4. tRsp: type of source response
# 5. cSrc: learning source of stimuli. List_1 - day1, List_2 - day2, New - lure
# 6. cCue: association color cue condition. cc1 - cue 1, cc2 - cue 2, cc3 - cue 3, cc0 - lure
# 7. cPE: prediction error condition. pe1 - 0%, pe2 - 50%, pe3 - 100%, pe0 - no pe/lure
# 8. IMname: name of stimuli
# 9. Resp: source response (learning day/list)
# 10. Corr: source response type. 1-correct, 2-source confusion, 3-intrusion, 0-incorrect
# 11. Conf: source response confidence. 1-4
# 12. aResp: association response
# 13. aCorr: correctness of association response
# 14. aConf: association response confidence. 1-4
# 15. Correct: correct response of source memory (List1>D1, List2>D2, List3>new)
# 16. Int: intrusion response of source memory (List2>D1)
# 17. err: source confusion response of source memory (List1>D2)
# 18. Incorr: incorrect response of source memory (List1&2>new, List3>day1&2)
length(unique(p3$SN))
## [1] 36
length(unique(p3$SN[p3$Btw==1])) # the number of participants of experimental group
## [1] 18
length(unique(p3$SN[p3$Btw==2])) # the number of participants of control group
## [1] 18
table(p3$SN)
##
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21
## 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270
## 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38
## 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270셋째 날 출처 및 연합 기억 검사에서 물체 목록에 대한 출처 기억 반응 패턴을 분석하였다. 출처 반응은 주요 종속 변인인 목록 1 정확반응 (List 1 Correct, L1→D1), 목록 2 정확반응 (List 2 Correct, L2→D2), 출처 혼동 (Source Confusion, L1→D2), 침범 (Intrusion, L2→D1) 과 부차적인 변인인 목록 3 정확반응 (List 3 Correct, L3→New), 목록 3 오경보 1과 2 (List 3 False Alarm - Day 1&2, L3→D1&2), 목록 1 & 2 누락 (Miss, L1&2→New)으로 구분되어 분석되었다.
두 집단의 물체 목록에 따른 출처 반응 패턴을 표로 나타내었다. List 3 Correct, List 3 False Alarm, List 1&2 Miss는 두 집단 모두에서 천장 효과와 바닥 효과를 보였다. 따라서 이 반응들은 분석에 포함하지 않았다.
# phase 1, subject-level, long-format
p3.AsyPtt.long.all <- p3 %>% group_by(SN, Btw, cSrc, Resp) %>%
summarise(Rsp = length(Resp)/90*100) %>% ungroup()
p3.AsyPtt.wide.all <- p3.AsyPtt.long.all %>% spread(key = Resp, value = Rsp)
p3.AsyPtt.long.all <- gather(p3.AsyPtt.wide.all, Resp, Rsp, Day_1:New, factor_key=TRUE)
p3.AsyPtt.long.all[is.na(p3.AsyPtt.long.all)] <- 0
p3.AsyPtt.long.all <- arrange(p3.AsyPtt.long.all, SN, cSrc, Resp, Rsp)
p3.AsyPtt.long.exp <- p3.AsyPtt.long.all %>% filter(Btw==1)
p3.AsyPtt.long.con <- p3.AsyPtt.long.all %>% filter(Btw==2)
# wide format
p3.AsyPtt.swide.all <- p3.AsyPtt.long.all %>% spread(key = Resp, value = Rsp)
p3.AsyPtt.swide.exp <- p3.AsyPtt.swide.all %>% filter(Btw==1)
p3.AsyPtt.swide.con <- p3.AsyPtt.swide.all %>% filter(Btw==2)
# summary table
p3.AsyPtt.g.all <- p3.AsyPtt.long.all %>% group_by(Btw, cSrc, Resp) %>%
summarise(Rsp.M = mean(Rsp), Rsp.SD = sd(Rsp)) %>% ungroup()
p3.AsyPtt.g.all$Rsp.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all, measurevar = "Rsp", idvar = "SN",
betweenvars = "Btw", withinvars = c("cSrc","Resp"))$se
p3.AsyPtt.g.all$Rsp.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all, measurevar = "Rsp", idvar = "SN",
betweenvars = "Btw", withinvars = c("cSrc","Resp"))$ci
p3.AsyPtt.g.exp <- p3.AsyPtt.g.all %>% filter(Btw==1)
p3.AsyPtt.g.con <- p3.AsyPtt.g.all %>% filter(Btw==2)
p3.AsyPtt.g.table <- p3.AsyPtt.g.all %>% unite(cSrc_Resp, cSrc:Resp, remove=TRUE) %>% rename(Src_Resp = "cSrc_Resp")
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_1_New'] <- 'List 1 Miss'
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_2_New'] <- 'List 2 Miss'
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_3_New'] <- 'List 3 Correct'
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_3_Day_1'] <- 'List 3 FA - Day 1'
p3.AsyPtt.g.table$Src_Resp[p3.AsyPtt.g.table$Src_Resp=='List_3_Day_2'] <- 'List 3 FA - Day 2'
srt <- c(1, 3, 5, 4, 2, 6, 8, 9, 7)
p3.AsyPtt.g.table.1 <- p3.AsyPtt.g.table %>% filter(Btw == 1) %>% arrange(srt)
p3.AsyPtt.g.table.2 <- p3.AsyPtt.g.table %>% filter(Btw == 2) %>% arrange(srt)
p3.AsyPtt.g.table.all <- rbind(p3.AsyPtt.g.table.1, p3.AsyPtt.g.table.2)
p3.AsyPtt.g.table.all$Btw <- factor(p3.AsyPtt.g.table.all$Btw, levels = c(1,2), labels=c("Experimental", "Control"))
p3.AsyPtt.g.table.all %>% kable(digits=2)| Btw | Src_Resp | Rsp.M | Rsp.SD | Rsp.se | Rsp.ci |
|---|---|---|---|---|---|
| Experimental | List 1 Correct | 75.43 | 10.13 | 2.53 | 5.34 |
| Experimental | List 2 Correct | 66.05 | 12.50 | 3.13 | 6.59 |
| Experimental | Source Confusion | 21.30 | 8.51 | 2.13 | 4.49 |
| Experimental | Intrusion | 31.73 | 11.74 | 2.93 | 6.19 |
| Experimental | List 1 Miss | 3.27 | 3.78 | 0.95 | 1.99 |
| Experimental | List 2 Miss | 2.22 | 2.44 | 0.61 | 1.29 |
| Experimental | List 3 Correct | 97.28 | 3.52 | 0.88 | 1.86 |
| Experimental | List 3 FA - Day 1 | 1.98 | 3.16 | 0.79 | 1.66 |
| Experimental | List 3 FA - Day 2 | 0.74 | 1.01 | 0.25 | 0.53 |
| Control | List 1 Correct | 71.42 | 9.68 | 2.42 | 5.10 |
| Control | List 2 Correct | 70.62 | 10.19 | 2.55 | 5.37 |
| Control | Source Confusion | 23.95 | 8.68 | 2.17 | 4.58 |
| Control | Intrusion | 25.80 | 8.99 | 2.25 | 4.74 |
| Control | List 1 Miss | 4.63 | 3.39 | 0.85 | 1.79 |
| Control | List 2 Miss | 3.58 | 2.89 | 0.72 | 1.53 |
| Control | List 3 Correct | 95.62 | 6.94 | 1.73 | 3.66 |
| Control | List 3 FA - Day 1 | 2.28 | 3.84 | 0.96 | 2.02 |
| Control | List 3 FA - Day 2 | 2.10 | 5.28 | 1.32 | 2.78 |
두 집단의 물체 목록에 따른 출처 반응 패턴을 그래프로 나타내었다. 그래프에서 A는 전체 집단의 물체 목록에 따른 출처 반응, B는 실험 집단, C는 통제집단을 나타낸다. A 그래프에서 x축은 물체 목록에 따른 출처 반응, y축은 반응 비율을 나타내며, 색은 각 집단을 나타낸다. B,C 그래프의 x축은 각 학습일에 학습한 물체 목록(첫째 날 학습 목록 1, 둘째 날 학습 목록 2, 새로운 물체 목록 3)을 나타내며, y축은 반응의 비율을 나타낸다. 각 집단에서 해당 물체 목록에 대한 출처 귀인 반응을 첫째 날 학습 Day 1, 둘째 날 학습 Day 2, 학습하지 않음 New로 구분하였다. 모든 그래프에서 빨간 점은 평균을 나타내며, 오차 막대는 95% 신뢰구간으로 표시하였다.
## plot
p3.AsyPtt.long.all.p2 <- p3.AsyPtt.long.all %>% filter(cSrc != "List_3", Resp != "New")
p3.AsyPtt.g.all.p2 <- p3.AsyPtt.g.all %>% filter(cSrc != "List_3", Resp != "New")
p3.all.plot1 <- ggplot(data=p3.AsyPtt.long.all.p2, aes(x=cSrc, y=Rsp, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.g.all.p2, aes(x = cSrc, y=Rsp.M, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
facet_grid(.~Btw, scales="free_x", space = "free",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(0, 105), clip = "on") +
labs(x = "Source Response by Object List", y = "Proportion of Response (%)", fill ="Attribution") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
legend.position=c(0.8, 0.85))
p3.exp.plot1 <- ggplot(data=p3.AsyPtt.long.exp, aes(x=cSrc, y=Rsp, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=Rsp, group=Resp, color = SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.exp,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1-.22, y=filter(p3.AsyPtt.swide.exp,cSrc=="List_1")$"Day_1",
xend=1, yend=filter(p3.AsyPtt.swide.exp,cSrc=="List_1")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.exp,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1, y=filter(p3.AsyPtt.swide.exp,cSrc=="List_1")$"Day_2",
xend=1+.22, yend=filter(p3.AsyPtt.swide.exp,cSrc=="List_1")$"New", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.exp,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2-.22, y=filter(p3.AsyPtt.swide.exp,cSrc=="List_2")$"Day_1",
xend=2, yend=filter(p3.AsyPtt.swide.exp,cSrc=="List_2")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.exp,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2, y=filter(p3.AsyPtt.swide.exp,cSrc=="List_2")$"Day_2",
xend=2+.22, yend=filter(p3.AsyPtt.swide.exp,cSrc=="List_2")$"New", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.exp,cSrc=="List_3"), inherit.aes = FALSE,
aes(x=3-.22, y=filter(p3.AsyPtt.swide.exp,cSrc=="List_3")$"Day_1",
xend=3, yend=filter(p3.AsyPtt.swide.exp,cSrc=="List_3")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.exp,cSrc=="List_3"), inherit.aes = FALSE,
aes(x=3, y=filter(p3.AsyPtt.swide.exp,cSrc=="List_3")$"Day_2",
xend=3+.22, yend=filter(p3.AsyPtt.swide.exp,cSrc=="List_3")$"New", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.AsyPtt.g.exp, aes(x = cSrc, y = Rsp.M, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00","#56b4e9", "#ff6164"),
labels = c("Day 1", "Day 2", "New")) +
scale_x_discrete(labels = c("List 1", "List 2", "List 3")) +
coord_cartesian(ylim = c(0, 105), clip = "on") +
labs(x = "Object List", y = "Proportion of Response (%)", fill ="Attribution") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
p3.con.plot1 <- ggplot(data=p3.AsyPtt.long.con, aes(x=cSrc, y=Rsp, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=Rsp, group=Resp, color = SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.con,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1-.22, y=filter(p3.AsyPtt.swide.con,cSrc=="List_1")$"Day_1",
xend=1, yend=filter(p3.AsyPtt.swide.con,cSrc=="List_1")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.con,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1, y=filter(p3.AsyPtt.swide.con,cSrc=="List_1")$"Day_2",
xend=1+.22, yend=filter(p3.AsyPtt.swide.con,cSrc=="List_1")$"New", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.con,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2-.22, y=filter(p3.AsyPtt.swide.con,cSrc=="List_2")$"Day_1",
xend=2, yend=filter(p3.AsyPtt.swide.con,cSrc=="List_2")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.con,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2, y=filter(p3.AsyPtt.swide.con,cSrc=="List_2")$"Day_2",
xend=2+.22, yend=filter(p3.AsyPtt.swide.con,cSrc=="List_2")$"New", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.con,cSrc=="List_3"), inherit.aes = FALSE,
aes(x=3-.22, y=filter(p3.AsyPtt.swide.con,cSrc=="List_3")$"Day_1",
xend=3, yend=filter(p3.AsyPtt.swide.con,cSrc=="List_3")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.swide.con,cSrc=="List_3"), inherit.aes = FALSE,
aes(x=3, y=filter(p3.AsyPtt.swide.con,cSrc=="List_3")$"Day_2",
xend=3+.22, yend=filter(p3.AsyPtt.swide.con,cSrc=="List_3")$"New", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.AsyPtt.g.con, aes(x = cSrc, y=Rsp.M, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00","#56b4e9", "#ff6164"),
labels = c("Day 1", "Day 2", "New")) +
scale_x_discrete(labels = c("List 1", "List 2", "List 3")) +
coord_cartesian(ylim = c(0, 105), clip = "on") +
labs(x = "Object List", y = "Proportion of Response (%)", fill ="Attribution") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
ggpubr::ggarrange(p3.all.plot1, labels = "A) All Group",
ggpubr::ggarrange(p3.exp.plot1, p3.con.plot1, ncol = 2, labels = c("B) Experimental Group", "C) Control Group"),
hjust = -0.1, vjust=1, font.label = list(size = 16)), nrow = 2,
hjust = -0.1, vjust=1, font.label = list(size = 16)) 기억 갱신 효과를 반영하는 비대칭적 출처 반응 패턴을 살펴보기 위해, 목록 1과 목록 2에서의 학습 출처 오류를 살펴보았다.
# List 1 & 2 Incorrect Source Response
p3.AsyPtt.long.all.2 <- p3.AsyPtt.long.all %>% unite(cSrc_Resp, cSrc:Resp, remove=FALSE) %>%
rename(sResp = "cSrc_Resp")
p3.AsyPtt.long.all.2$sResp[p3.AsyPtt.long.all.2$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.long.all.2$sResp[p3.AsyPtt.long.all.2$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.long.all.2$sResp[p3.AsyPtt.long.all.2$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.long.all.2$sResp[p3.AsyPtt.long.all.2$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.long.all.2$sResp <- factor(p3.AsyPtt.long.all.2$sResp)
p3.AsyPtt.long.all.2 <- p3.AsyPtt.long.all.2 %>% filter(sResp %in% c("Source Confusion", "Intrusion"))
p3.AsyPtt.g.all.2 <- p3.AsyPtt.long.all.2 %>% group_by(Btw, sResp) %>%
summarise(Rsp.M = mean(Rsp), Rsp.SD = sd(Rsp)) %>% ungroup()
p3.AsyPtt.g.all.2$Rsp.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all.2, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = "sResp")$se
p3.AsyPtt.g.all.2$Rsp.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all.2, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = "sResp")$ci
p3.AsyPtt.g.all.2 %>% kable(digit=2)| Btw | sResp | Rsp.M | Rsp.SD | Rsp.se | Rsp.ci |
|---|---|---|---|---|---|
| 1 | Intrusion | 31.73 | 11.74 | 1.83 | 3.87 |
| 1 | Source Confusion | 21.30 | 8.51 | 1.83 | 3.87 |
| 2 | Intrusion | 25.80 | 8.99 | 1.74 | 3.68 |
| 2 | Source Confusion | 23.95 | 8.68 | 1.74 | 3.68 |
Source Confusion (L1>D2) 과 Intrusion (L2>D1)에서 집단 간, 집단 내의 차이를 분석하기 위해 집단과 물체 목록에서의 출처 오류를 요인으로 한 2 X 2 혼합 요인 분산분석을 수행하였다.
p3.AsyPtt.all.2.aov <- aov_ez(id = "SN", dv = "Rsp", data = p3.AsyPtt.long.all.2, between = "Btw", within = "sResp")
anova(p3.AsyPtt.all.2.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 80.805 | 0.596 | 0.017 | 0.445 |
| sResp | 1 | 34 | 102.365 | 6.633 | 0.163 | 0.015 |
| Btw:sResp | 1 | 34 | 102.365 | 3.236 | 0.087 | 0.081 |
분석 결과, 출처 반응의 주효과가 유의하였다. 집단의 주효과와 집단과 출처 반응의 상호작용은 유의하지 않았다. 사후 분석으로 각 집단 내의 출처 오류와 집단 간의 출처 오류 차이를 살펴보았다.
# source response contrast
p3.AsyPtt.m2.1.all <- emmeans(p3.AsyPtt.all.2.aov, "sResp", by = "Btw", type = "response")
p3.AsyPtt.m2.1.all.pair <- update(pairs(p3.AsyPtt.m2.1.all), by = NULL, adjust = "tukey")
p3.AsyPtt.m2.1.all.pair %>% summary(infer = TRUE) %>% kable(digits=3)| contrast | Btw | estimate | SE | df | lower.CL | upper.CL | t.ratio | p.value |
|---|---|---|---|---|---|---|---|---|
| Intrusion - Source.Confusion | 1 | 10.432 | 3.373 | 34 | 2.542 | 18.322 | 3.093 | 0.008 |
| Intrusion - Source.Confusion | 2 | 1.852 | 3.373 | 34 | -6.038 | 9.742 | 0.549 | 0.829 |
# group contrast
p3.AsyPtt.m2.2.all <- emmeans(p3.AsyPtt.all.2.aov, "Btw", by = "sResp", type = "response")
p3.AsyPtt.m2.2.all.pair <- update(pairs(p3.AsyPtt.m2.1.all), by = NULL, adjust = "tukey")
p3.AsyPtt.m2.2.all.pair %>% summary(infer = TRUE) %>% kable(digits=3)| contrast | Btw | estimate | SE | df | lower.CL | upper.CL | t.ratio | p.value |
|---|---|---|---|---|---|---|---|---|
| Intrusion - Source.Confusion | 1 | 10.432 | 3.373 | 34 | 2.542 | 18.322 | 3.093 | 0.008 |
| Intrusion - Source.Confusion | 2 | 1.852 | 3.373 | 34 | -6.038 | 9.742 | 0.549 | 0.829 |
출처 반응에 따른 사후 분석을 수행한 결과, 실험 집단에서 Source Confusion (L1>D2)이 Intrusion (L2>D1)보다 유의하게 낮은 비대칭적 출처 오귀인 패턴을 보였다. 통제 집단에서는 Source Confusion (L1>D2)과 Intrusion (L2>D1)의 차이가 유의하지 않았다. 각 출처 반응에서 집단 간의 차이에 대한 사후 분석 결과, 실험 집단이 통제 집단보다 높은 Intrusion (L2>D1)을 보이는 경향이 나타났다. 그러나 분산 분석에서 집단과 출처 반응 간의 상호작용이 유의하지 않았다는 것을 고려할 필요가 있다.
p3.AsyPtt.m2.3.all <- emmeans(p3.AsyPtt.all.2.aov, c("sResp","Btw"), by = NULL, type = "response")
plot(p3.AsyPtt.m2.3.all, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())집단과 물체 목록에서의 Source Confusion (L1>D2), Intrusion (L2>D1) 출처 반응을 일반화 선형 혼합 모형으로 검증하였다.
p3.sErr <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.sErr <- p3.sErr %>% filter(cSrc != 3)
p3.sErr$SN = factor(p3.sErr$SN);
p3.sErr$Btw = factor(p3.sErr$Btw, levels=c(1,2), labels=c("Experimental", "Control"))
p3.sErr$cSrc = factor(p3.sErr$cSrc, labels=c("List_1", "List_2"))
p3.sErr$Resp <- factor(p3.sErr$Resp, levels=c(1,2,3), labels=c("Day_1", "Day_2", "New"))
p3.sErr$sErr <- as.numeric(p3.sErr$Corr==3 | p3.sErr$Corr==2);
p3.sErr$sincor <- as.numeric(p3.sErr$Corr==0)(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.src.sErr.Model.1 <- afex::mixed(sErr ~ Btw*cSrc + (1|SN) + (1|IMname),
p3.sErr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.src.sErr.Model.1 , file="d3_src_sErr_afex.Rdata")
stopCluster(cl)anova(p3.src.sErr.Model.1) %>% kable(digit=3)분석 결과, 출처 반응의 주효과, 집단과 출처 반응의 상호작용이 유의하였다.
p3.src.sErr.m1 <- emmeans(p3.src.sErr.Model.1, c("cSrc"), by = "Btw", type = "response")
p3.src.sErr.m1.pair <- update(pairs(p3.src.sErr.m1), by = NULL, adjust= "tukey")
p3.src.sErr.m1.pair %>% summary(infer = TRUE) %>% kable(digits=3)
p3.src.sErr.m2 <- emmeans(p3.src.sErr.Model.1, c("Btw"), by = "cSrc", type = "response")
p3.src.sErr.m2.pair <- update(pairs(p3.src.sErr.m2), by = NULL, adjust= "tukey")
p3.src.sErr.m2.pair %>% summary(infer = TRUE) %>% kable(digits=3)
p3.src.sErr.m3 <- emmeans(p3.src.sErr.Model.1, c("cSrc","Btw"), by = NULL, type = "response")
p3.src.sErr.m3.pair <- update(pairs(p3.src.sErr.m3), by = NULL, adjust= "tukey")
p3.src.sErr.m3.pair %>% summary(infer = TRUE) %>% kable(digits=3)사후 분석 결과, 실험 집단에서 Source Confusion (L1>D2)이 Intrusion (L2>D1)보다 유의하게 낮은 비대칭적 출처 오귀인 패턴을 보였다. 통제 집단에서는 Source Confusion (L1>D2)과 Intrusion (L2>D1)의 차이가 유의하지 않았다. 또한, 실험 집단은 통제 집단보다 유의하게 높은 Intrusion (L2>D1) 수준을 보였다. 그러나 이 차이는 상호작용의 모든 비교에 대한 사후 분석에서는 나타나지 않았다.
plot(p3.src.sErr.m3, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())목록 1, 목록 2의 출처 반응 정확도에서 집단과 정확 출처 반응에 따른 차이를 분석하였다.
# List 1 & 2 & 3 Correct Source Response
p3.AsyPtt.long.all.1 <- p3.AsyPtt.long.all %>% unite(cSrc_Resp, cSrc:Resp, remove=FALSE) %>%
rename(sResp = "cSrc_Resp")
p3.AsyPtt.long.all.1$sResp[p3.AsyPtt.long.all.1$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.long.all.1$sResp[p3.AsyPtt.long.all.1$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.long.all.1$sResp[p3.AsyPtt.long.all.1$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.long.all.1$sResp[p3.AsyPtt.long.all.1$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.long.all.1$sResp <- factor(p3.AsyPtt.long.all.1$sResp)
p3.AsyPtt.long.all.1 <- p3.AsyPtt.long.all.1 %>% filter(sResp %in% c("List 1 Correct", "List 2 Correct"))
p3.AsyPtt.long.all.1$Btw <- factor(p3.AsyPtt.long.all.1$Btw, levels=c(1,2), labels=c("Experimental","Control"))
p3.AsyPtt.g.all.1 <- p3.AsyPtt.long.all.1 %>% group_by(Btw, sResp) %>%
summarise(Rsp.M = mean(Rsp), Rsp.SD = sd(Rsp)) %>% ungroup()
p3.AsyPtt.g.all.1$Rsp <- p3.AsyPtt.g.all.1$Rsp.M
p3.AsyPtt.g.all.1$Rsp.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all.1, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = "sResp")$se
p3.AsyPtt.g.all.1$Rsp.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all.1, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = "sResp")$ci
p3.AsyPtt.g.all.1 %>% kable(digit=2)| Btw | sResp | Rsp.M | Rsp.SD | Rsp | Rsp.se | Rsp.ci |
|---|---|---|---|---|---|---|
| Experimental | List 1 Correct | 75.43 | 10.13 | 75.43 | 1.79 | 3.78 |
| Experimental | List 2 Correct | 66.05 | 12.50 | 66.05 | 1.79 | 3.78 |
| Control | List 1 Correct | 71.42 | 9.68 | 71.42 | 1.91 | 4.02 |
| Control | List 2 Correct | 70.62 | 10.19 | 70.62 | 1.91 | 4.02 |
집단과 정확 출처 반응을 요인으로 한 2 X 2 혼합 요인 분산분석을 수행하였다.
p3.AsyPtt.all.1.aov <- aov_ez(id = "SN", dv = "Rsp", data = p3.AsyPtt.long.all.1, between = "Btw", within = "sResp")
anova(p3.AsyPtt.all.1.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 118.600 | 0.012 | 0.000 | 0.914 |
| sResp | 1 | 34 | 109.514 | 4.263 | 0.111 | 0.047 |
| Btw:sResp | 1 | 34 | 109.514 | 3.025 | 0.082 | 0.091 |
분석 결과, 출처 반응의 주효과가 유의하였다.
p3.AsyPtt.m1.1.all <- emmeans(p3.AsyPtt.all.1.aov, "sResp", by = "Btw", type = "response")
p3.AsyPtt.m1.1.all.pair <- update(pairs(p3.AsyPtt.m1.1.all), by = NULL, adjust = "tukey")
p3.AsyPtt.m1.1.all.pair %>% summary(infer=T) %>% kable(digits=3)| contrast | Btw | estimate | SE | df | lower.CL | upper.CL | t.ratio | p.value |
|---|---|---|---|---|---|---|---|---|
| List.1.Correct - List.2.Correct | Experimental | 9.383 | 3.488 | 34 | 1.222 | 17.544 | 2.69 | 0.022 |
| List.1.Correct - List.2.Correct | Control | 0.802 | 3.488 | 34 | -7.358 | 8.963 | 0.23 | 0.967 |
각 집단에서 출처 반응에 따른 사후 분석 결과, 실험 집단에서 List 1 Correct는 List 2 Correct보다 유의하게 높은 정확도를 보였다.
plot(p3.AsyPtt.m1.1.all, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())분산 분석 결과를 보충하기 위해 일반화 선형 혼합 모형으로 검증하였다. 집단, 정확 출처 반응을 고정 효과로 하고 참가자와 자극에 대한 무선 효과로 포함한 일반화 선형 혼합 모형 p3.src.corr.Model을 구성하였다.
p3.sCorr <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.sCorr <- p3.sCorr %>% filter(cSrc != 3, Resp != 3); p3.sCorr$SN = factor(p3.sCorr$SN)
p3.sCorr$Btw = factor(p3.sCorr$Btw, levels=c(1,2), labels=c("Experimental","Control"))
p3.sCorr$cSrc = factor(p3.sCorr$cSrc, labels=c("List_1", "List_2"))
p3.sCorr$Resp <- factor(p3.sCorr$Resp, levels=c(1,2), labels=c("Day_1", "Day_2"))
p3.sCorr$sCorr <- as.numeric(p3.sCorr$Corr==1);(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.src.corr.Model.1 <- afex::mixed(sCorr ~ Btw*cSrc + (1|SN) + (1|IMname),
p3.sCorr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.src.corr.Model.1, file="d3_src_corr_afex.Rdata")
stopCluster(cl)anova(p3.src.corr.Model.1) %>% kable(digit=3)분석 결과, 출처 반응의 주효과, 집단과 출처 반응의 상호작용이 유의하였다.
p3.src.corr.m1 <- emmeans(p3.src.corr.Model.1, "cSrc", by = "Btw", type = "response")
p3.src.corr.m1.pair <- update(pairs(p3.src.corr.m1), by=NULL, adjust="tukey")
p3.src.corr.m1.pair %>% summary(infer=T) %>% kable(digits=3)
p3.src.corr.m2 <- emmeans(p3.src.corr.Model.1, "Btw", by = "cSrc", type = "response")
p3.src.corr.m2.pair <- update(pairs(p3.src.corr.m2), by=NULL, adjust="tukey")
p3.src.corr.m2.pair %>% summary(infer=T) %>% kable(digits=3)
p3.src.corr.m3 <- emmeans(p3.src.corr.Model.1, c("cSrc", "Btw"), type = "response")
p3.src.corr.m3.pair <- update(pairs(p3.src.corr.m3), by=NULL, adjust="tukey")
p3.src.corr.m3.pair %>% summary(infer=T) %>% kable(digits=3)사후 분석 결과, 실험 집단에서 List 1 Correct는 List 2 Correct보다 유의하게 높은 정확도를 보였다. 또한, 실험집단은 통제집단보다 유의하게 낮은 List 2 Correct를 보였다.
plot(p3.src.corr.m3, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())두 집단에서 List 1 Miss와 List 2 Miss의 차이를 분석하기 위해 집단과 반응을 요인으로한 2 X 2 혼합 요인 분산 분석을 수행하였다.
# List 1 & 2 Error
p3.AsyPtt.long.all.3 <- p3.AsyPtt.long.all %>% unite(cSrc_Resp, cSrc:Resp, remove=FALSE) %>%
rename(sResp = "cSrc_Resp")
p3.AsyPtt.long.all.3$sResp[p3.AsyPtt.long.all.3$sResp=='List_1_New'] <- 'List 1 Miss'
p3.AsyPtt.long.all.3$sResp[p3.AsyPtt.long.all.3$sResp=='List_2_New'] <- 'List 2 Miss'
p3.AsyPtt.long.all.3$sResp <- factor(p3.AsyPtt.long.all.3$sResp)
p3.AsyPtt.long.all.3 <- p3.AsyPtt.long.all.3 %>% filter(sResp %in% c("List 1 Miss", "List 2 Miss"))
p3.AsyPtt.g.all.3 <- p3.AsyPtt.long.all.3 %>% group_by(Btw, sResp) %>%
summarise(Rsp.M = mean(Rsp), Rsp.SD = sd(Rsp)) %>% ungroup()
p3.AsyPtt.g.all.3$Rsp <- p3.AsyPtt.g.all.2$Rsp.M
p3.AsyPtt.g.all.3$Rsp.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all.3, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = "sResp")$se
p3.AsyPtt.g.all.3$Rsp.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all.3, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = "sResp")$ci
p3.AsyPtt.g.all.3 %>% kable(digit=2)| Btw | sResp | Rsp.M | Rsp.SD | Rsp | Rsp.se | Rsp.ci |
|---|---|---|---|---|---|---|
| 1 | List 1 Miss | 3.27 | 3.78 | 31.73 | 0.36 | 0.77 |
| 1 | List 2 Miss | 2.22 | 2.44 | 21.30 | 0.36 | 0.77 |
| 2 | List 1 Miss | 4.63 | 3.39 | 25.80 | 0.55 | 1.16 |
| 2 | List 2 Miss | 3.58 | 2.89 | 23.95 | 0.55 | 1.16 |
p3.AsyPtt.all.3.aov <- aov_ez(id = "SN", dv = "Rsp", data = p3.AsyPtt.long.all.3, between = "Btw", within = "sResp")
anova(p3.AsyPtt.all.3.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 13.130 | 2.528 | 0.069 | 0.121 |
| sResp | 1 | 34 | 6.933 | 2.859 | 0.078 | 0.100 |
| Btw:sResp | 1 | 34 | 6.933 | 0.000 | 0.000 | 1.000 |
분석 결과, 모든 효과가 유의하지 않았다.
두 집단 간의 List 3 Correct를 비교하였다.
# List 3 Correct
p3.AsyPtt.long.all.4 <- p3.AsyPtt.long.all %>% unite(cSrc_Resp, cSrc:Resp, remove=FALSE) %>%
rename(sResp = "cSrc_Resp")
p3.AsyPtt.long.all.4$sResp[p3.AsyPtt.long.all.4$sResp=='List_3_New'] <- 'List 3 Correct'
p3.AsyPtt.long.all.4$sResp <- factor(p3.AsyPtt.long.all.4$sResp)
p3.AsyPtt.long.all.4 <- p3.AsyPtt.long.all.4 %>% filter(sResp %in% c("List 3 Correct"))
p3.AsyPtt.g.all.4 <- p3.AsyPtt.long.all.4 %>% group_by(Btw) %>%
summarise(Rsp.M = mean(Rsp), Rsp.SD = sd(Rsp)) %>% ungroup()
p3.AsyPtt.g.all.4$Rsp.se <- Rmisc::summarySE(data = p3.AsyPtt.long.all.4,
measurevar = "Rsp", groupvars = "Btw")$se
p3.AsyPtt.g.all.4$Rsp.ci <- Rmisc::summarySE(data = p3.AsyPtt.long.all.4,
measurevar = "Rsp", groupvars = "Btw")$ci
p3.AsyPtt.g.all.4 %>% kable(digit=2)| Btw | Rsp.M | Rsp.SD | Rsp.se | Rsp.ci |
|---|---|---|---|---|
| 1 | 97.28 | 3.52 | 0.83 | 1.75 |
| 2 | 95.62 | 6.94 | 1.64 | 3.45 |
p3.AsyPtt.all.4.aov <- aov_ez(id = "SN", dv = "Rsp", data = p3.AsyPtt.long.all.4, between = "Btw")
anova(p3.AsyPtt.all.4.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 30.261 | 0.826 | 0.024 | 0.37 |
분석 결과, List 3 Correct에서 두 집단 간의 차이는 유의하지 않았다.
List 3 FA - Day 1과 List 3 FA - Day 2에서 집단과 출처 반응을 요인으로 한 2 X 2 혼합 요인 분산 분석을 수행하였다.
# List 3 Incorrect Source Response
p3.AsyPtt.long.all.5 <- p3.AsyPtt.long.all %>% unite(cSrc_Resp, cSrc:Resp, remove=FALSE) %>%
rename(sResp = "cSrc_Resp")
p3.AsyPtt.long.all.5$sResp[p3.AsyPtt.long.all.5$sResp=='List_3_Day_1'] <- 'List 3 FA - D1'
p3.AsyPtt.long.all.5$sResp[p3.AsyPtt.long.all.5$sResp=='List_3_Day_2'] <- 'List 3 FA - D2'
p3.AsyPtt.long.all.5$sResp <- factor(p3.AsyPtt.long.all.5$sResp)
p3.AsyPtt.long.all.5 <- p3.AsyPtt.long.all.5 %>% filter(sResp %in% c("List 3 FA - D1", "List 3 FA - D2"))
p3.AsyPtt.g.all.5 <- p3.AsyPtt.long.all.5 %>% group_by(Btw, sResp) %>%
summarise(Rsp.M = mean(Rsp), Rsp.SD = sd(Rsp)) %>% ungroup()
p3.AsyPtt.g.all.5$Rsp.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all.5, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = "sResp")$se
p3.AsyPtt.g.all.5$Rsp.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.all.5, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = "sResp")$ci
p3.AsyPtt.g.all.5 %>% kable(digit=2)| Btw | sResp | Rsp.M | Rsp.SD | Rsp.se | Rsp.ci |
|---|---|---|---|---|---|
| 1 | List 3 FA - D1 | 1.98 | 3.16 | 0.39 | 0.82 |
| 1 | List 3 FA - D2 | 0.74 | 1.01 | 0.39 | 0.82 |
| 2 | List 3 FA - D1 | 2.28 | 3.84 | 0.76 | 1.61 |
| 2 | List 3 FA - D2 | 2.10 | 5.28 | 0.76 | 1.61 |
p3.AsyPtt.all.5.aov <- aov_ez(id = "SN", dv = "Rsp", data = p3.AsyPtt.long.all.5, between = "Btw", within = "sResp")
anova(p3.AsyPtt.all.5.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 15.131 | 0.826 | 0.024 | 0.370 |
| sResp | 1 | 34 | 11.661 | 0.778 | 0.022 | 0.384 |
| Btw:sResp | 1 | 34 | 11.661 | 0.425 | 0.012 | 0.519 |
분석 결과, 모든 효과가 유의하지 않았다.
p3.AsyPtt.long.pe <- p3 %>% group_by(SN, Btw, cSrc, cPE, Resp) %>%
summarise(Rsp = length(Resp)/30*100) %>% ungroup()
p3.AsyPtt.wide.pe <- p3.AsyPtt.long.pe %>% spread(key = Resp, value = Rsp)
p3.AsyPtt.long.pe <- gather(p3.AsyPtt.wide.pe, Resp, Rsp, Day_1:New, factor_key=TRUE)
p3.AsyPtt.long.pe[is.na(p3.AsyPtt.long.pe)] <- 0
p3.AsyPtt.long.pe <- arrange(p3.AsyPtt.long.pe, SN, cSrc, cPE, Resp, Rsp)
p3.AsyPtt.long.pe <- p3.AsyPtt.long.pe %>% filter(cSrc != "List_3", Resp != "New", cPE!="pe0")
p3.AsyPtt.long.pe.exp <- p3.AsyPtt.long.pe %>% filter(Btw==1)
p3.AsyPtt.long.pe.con <- p3.AsyPtt.long.pe %>% filter(Btw==2)
# wide format
p3.AsyPtt.swide.pe <- p3.AsyPtt.long.pe %>% spread(key = Resp, value = Rsp)
p3.AsyPtt.swide.pe.exp <- p3.AsyPtt.swide.pe %>% filter(Btw==1)
p3.AsyPtt.swide.pe.con <- p3.AsyPtt.swide.pe %>% filter(Btw==2)
# summary table
p3.AsyPtt.g.pe <- p3.AsyPtt.long.pe %>%
group_by(Btw, cPE, cSrc, Resp) %>%
summarise(Rsp.M = mean(Rsp), Rsp.SD = sd(Rsp)) %>% ungroup()
p3.AsyPtt.g.pe$Rsp.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.pe, measurevar = "Rsp", idvar = "SN",
betweenvars = "Btw", withinvars = c("cPE","cSrc","Resp"))$se
p3.AsyPtt.g.pe$Rsp.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.pe, measurevar = "Rsp", idvar = "SN",
betweenvars = "Btw", withinvars = c("cPE","cSrc","Resp"))$ci
p3.AsyPtt.g.pe.exp <- p3.AsyPtt.g.pe %>% filter(Btw==1)
p3.AsyPtt.g.pe.con <- p3.AsyPtt.g.pe %>% filter(Btw==2)
# p3.AsyPtt.g.pe %>% kable(digits=2)예측 오류 조건에 따른 출처 오귀인 패턴의 그래프를 나타내었다.
p3.AsyPtt.long.pe1 <- p3.AsyPtt.long.pe %>% filter(cPE == "pe1")
p3.AsyPtt.g.all.pe1 <- p3.AsyPtt.g.pe %>% filter(cPE == "pe1")
p3.all.plot3.pe1 <- ggplot(data=p3.AsyPtt.long.pe1, aes(x=cSrc, y=Rsp, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.g.all.pe1, aes(x = cSrc, y=Rsp.M, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
# geom_point(data=p3.AsyPtt.g.all.pe1, aes(x = cSrc, y=Rsp.M),
# position = position_dodge(0.80), color = "black", size = 5, show.legend = FALSE) +
# geom_errorbar(data=p3.AsyPtt.g.all.pe1, aes(x=cSrc, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci), size = 1, width = .2, position = position_dodge(0.8)) +
facet_grid(.~Btw, scales="free_x", space = "free",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
# scale_fill_manual(values = c("#a3d8d7", "#ed9b5d"),#a3d8d7 #72c2c8
# scale_fill_manual(values = c("#feb24c", "#4292c6"),
# scale_fill_manual(values = c("#c6d9f1", "#254061"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(0, 105), clip = "on") +
labs(x = "Source Response by Object List", y = "Proportion of Response (%)", fill ="Attribution") +
# ggtitle("Source Memory Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position=c(0.8, 0.85))
p3.AsyPtt.long.pe2 <- p3.AsyPtt.long.pe %>% filter(cPE == "pe2")
p3.AsyPtt.g.all.pe2 <- p3.AsyPtt.g.pe %>% filter(cPE == "pe2")
p3.all.plot3.pe2 <- ggplot(data=p3.AsyPtt.long.pe2, aes(x=cSrc, y=Rsp, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.g.all.pe2, aes(x = cSrc, y=Rsp.M, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
# geom_point(data=p3.AsyPtt.g.all.pe2, aes(x = cSrc, y=Rsp.M),
# position = position_dodge(0.80), color = "black", size = 5, show.legend = FALSE) +
# geom_errorbar(data=p3.AsyPtt.g.all.pe2, aes(x=cSrc, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci), size = 1, width = .2, position = position_dodge(0.8)) +
facet_grid(.~Btw, scales="free_x", space = "free",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
# scale_fill_manual(values = c("#a3d8d7", "#ed9b5d"),#a3d8d7 #72c2c8
# scale_fill_manual(values = c("#feb24c", "#4292c6"),
# scale_fill_manual(values = c("#c6d9f1", "#254061"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(0, 105), clip = "on") +
labs(x = "Source Response by Object List", y = "Proportion of Response (%)", fill ="Attribution") +
# ggtitle("Source Memory Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position=c(0.8, 0.85))
p3.AsyPtt.long.pe3 <- p3.AsyPtt.long.pe %>% filter(cPE == "pe3")
p3.AsyPtt.g.all.pe3 <- p3.AsyPtt.g.pe %>% filter(cPE == "pe3")
p3.all.plot3.pe3 <- ggplot(data=p3.AsyPtt.long.pe3, aes(x=cSrc, y=Rsp, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.g.all.pe3, aes(x = cSrc, y=Rsp.M, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
# geom_point(data=p3.AsyPtt.g.all.pe3, aes(x = cSrc, y=Rsp.M),
# position = position_dodge(0.80), color = "black", size = 5, show.legend = FALSE) +
# geom_errorbar(data=p3.AsyPtt.g.all.pe3, aes(x=cSrc, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci), size = 1, width = .2, position = position_dodge(0.8)) +
facet_grid(.~Btw, scales="free_x", space = "free",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
# scale_fill_manual(values = c("#a3d8d7", "#ed9b5d"),#a3d8d7 #72c2c8
# scale_fill_manual(values = c("#feb24c", "#4292c6"),
# scale_fill_manual(values = c("#c6d9f1", "#254061"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(0, 105), clip = "on") +
labs(x = "Source Response by Object List", y = "Proportion of Response (%)", fill ="Attribution") +
# ggtitle("Source Memory Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position=c(0.8, 0.85))
ggpubr::ggarrange(p3.all.plot3.pe1, p3.all.plot3.pe2, p3.all.plot3.pe3, ncol=3,
labels = c("A) PE 1 (0%)", "B) PE 2 (50%)", "C) PE 3(100%)"),
hjust = -0.1, vjust=1, font.label = list(size = 16))
각 예측 오류 조건에서 Source Confusion과 Intrusion 간의 비대칭적 패턴에 대한 혼합 요인 분산분석을 수행하였다.
p3.AsyPtt.long.pe.2 <- p3.AsyPtt.long.pe %>% unite(cSrc_Resp, c(cSrc,Resp), remove=FALSE) %>%
rename(sResp = "cSrc_Resp")
p3.AsyPtt.long.pe.2$sResp[p3.AsyPtt.long.pe.2$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.long.pe.2$sResp[p3.AsyPtt.long.pe.2$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.long.pe.2$sResp[p3.AsyPtt.long.pe.2$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.long.pe.2$sResp[p3.AsyPtt.long.pe.2$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.long.pe.2$sResp <- factor(p3.AsyPtt.long.pe.2$sResp)
p3.AsyPtt.long.pe.2 <- p3.AsyPtt.long.pe.2 %>% filter(sResp %in% c("Source Confusion", "Intrusion"))
p3.AsyPtt.long.pe1.2 <- p3.AsyPtt.long.pe.2 %>% filter(cPE == "pe1")
p3.AsyPtt.long.pe2.2 <- p3.AsyPtt.long.pe.2 %>% filter(cPE == "pe2")
p3.AsyPtt.long.pe3.2 <- p3.AsyPtt.long.pe.2 %>% filter(cPE == "pe3")
p3.AsyPtt.g.pe.2 <- p3.AsyPtt.long.pe.2 %>% group_by(Btw, cPE, sResp) %>%
summarise(Rsp.M = mean(Rsp), Rsp.SD = sd(Rsp)) %>% ungroup()
p3.AsyPtt.g.pe.2$Rsp.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.pe.2, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = c("cPE","sResp"))$se
p3.AsyPtt.g.pe.2$Rsp.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.long.pe.2, idvar = "SN",
measurevar = "Rsp", betweenvars = "Btw", withinvars = c("cPE","sResp"))$ci
p3.AsyPtt.g.pe1.2 <- p3.AsyPtt.g.pe.2 %>% filter(cPE =="pe1")
p3.AsyPtt.g.pe2.2 <- p3.AsyPtt.g.pe.2 %>% filter(cPE =="pe2")
p3.AsyPtt.g.pe3.2 <- p3.AsyPtt.g.pe.2 %>% filter(cPE =="pe3")PE 1 조건에서의 분석 결과는 아래와 같다.
p3.AsyPtt.g.pe1.2 %>% kable(digits=2)| Btw | cPE | sResp | Rsp.M | Rsp.SD | Rsp.se | Rsp.ci |
|---|---|---|---|---|---|---|
| 1 | pe1 | Intrusion | 26.67 | 9.57 | 1.75 | 3.69 |
| 1 | pe1 | Source Confusion | 23.89 | 12.38 | 2.45 | 5.17 |
| 2 | pe1 | Intrusion | 25.37 | 12.84 | 2.87 | 6.05 |
| 2 | pe1 | Source Confusion | 27.78 | 13.48 | 2.60 | 5.49 |
p3.AsyPtt.pe1.2.aov <- aov_ez(id = "SN", dv = "Rsp", data = p3.AsyPtt.long.pe1.2, between = "Btw", within = "sResp")
anova(p3.AsyPtt.pe1.2.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 129.648 | 0.233 | 0.007 | 0.632 |
| sResp | 1 | 34 | 166.031 | 0.004 | 0.000 | 0.952 |
| Btw:sResp | 1 | 34 | 166.031 | 0.729 | 0.021 | 0.399 |
모든 효과가 유의하지 않았다.
p3.AsyPtt.pe1.m1 <- emmeans(p3.AsyPtt.pe1.2.aov, pairwise ~ sResp | Btw, type = "response")
p3.AsyPtt.pe1.m1$contrasts %>% kable(digits=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| Intrusion - Source.Confusion | 1 | 2.778 | 4.295 | 34 | 0.647 | 0.522 |
| Intrusion - Source.Confusion | 2 | -2.407 | 4.295 | 34 | -0.561 | 0.579 |
p3.AsyPtt.pe1.m2 <- emmeans(p3.AsyPtt.pe1.2.aov, pairwise ~ Btw | sResp, type = "response")
p3.AsyPtt.pe1.m2$contrasts %>% kable(digits=3)| contrast | sResp | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| 1 - 2 | Intrusion | 1.296 | 3.774 | 34 | 0.343 | 0.733 |
| 1 - 2 | Source.Confusion | -3.889 | 4.314 | 34 | -0.901 | 0.374 |
PE 2 조건에서의 분석 결과는 아래와 같다.
p3.AsyPtt.g.pe2.2 %>% kable(digits=2)| Btw | cPE | sResp | Rsp.M | Rsp.SD | Rsp.se | Rsp.ci |
|---|---|---|---|---|---|---|
| 1 | pe2 | Intrusion | 36.48 | 13.79 | 2.51 | 5.29 |
| 1 | pe2 | Source Confusion | 19.26 | 10.20 | 2.31 | 4.87 |
| 2 | pe2 | Intrusion | 24.26 | 10.71 | 2.46 | 5.19 |
| 2 | pe2 | Source Confusion | 22.59 | 12.81 | 3.12 | 6.58 |
p3.AsyPtt.pe2.2.aov <- aov_ez(id = "SN", dv = "Rsp", data = p3.AsyPtt.long.pe2.2, between = "Btw", within = "sResp")
anova(p3.AsyPtt.pe2.2.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 94.862 | 3.748 | 0.099 | 0.061 |
| sResp | 1 | 34 | 191.667 | 8.377 | 0.198 | 0.007 |
| Btw:sResp | 1 | 34 | 191.667 | 5.681 | 0.143 | 0.023 |
출처 반응의 주효과와 집단과 출처 반응의 상호작용이 유의하였다.
p3.AsyPtt.pe2.m1 <- emmeans(p3.AsyPtt.pe2.2.aov, pairwise ~ sResp | Btw, type = "response")
p3.AsyPtt.pe2.m1$contrasts %>% kable(digits=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| Intrusion - Source.Confusion | 1 | 17.222 | 4.615 | 34 | 3.732 | 0.001 |
| Intrusion - Source.Confusion | 2 | 1.667 | 4.615 | 34 | 0.361 | 0.720 |
p3.AsyPtt.pe2.m2 <- emmeans(p3.AsyPtt.pe2.2.aov, pairwise ~ Btw | sResp, type = "response")
p3.AsyPtt.pe2.m2$contrasts %>% kable(digits=3)| contrast | sResp | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| 1 - 2 | Intrusion | 12.222 | 4.116 | 34 | 2.969 | 0.005 |
| 1 - 2 | Source.Confusion | -3.333 | 3.859 | 34 | -0.864 | 0.394 |
실험 집단에서 Source Confusion (L1>D2)이 Intrusion (L2>D1)보다 유의하게 낮은 비대칭적 출처 오귀인 패턴을 보였다. 또한 실험 집단이 통제 집단보다 높은 Intrusion (L2>D1)을 보이는 경향이 나타났다.
PE 3 조건에서의 분석 결과는 아래와 같다.
p3.AsyPtt.g.pe3.2 %>% kable(digits=2)| Btw | cPE | sResp | Rsp.M | Rsp.SD | Rsp.se | Rsp.ci |
|---|---|---|---|---|---|---|
| 1 | pe3 | Intrusion | 32.04 | 15.56 | 2.60 | 5.48 |
| 1 | pe3 | Source Confusion | 20.74 | 9.81 | 2.51 | 5.29 |
| 2 | pe3 | Intrusion | 27.78 | 12.21 | 2.33 | 4.91 |
| 2 | pe3 | Source Confusion | 21.48 | 8.26 | 1.81 | 3.82 |
p3.AsyPtt.pe3.2.aov <- aov_ez(id = "SN", dv = "Rsp", data = p3.AsyPtt.long.pe3.2, between = "Btw", within = "sResp")
anova(p3.AsyPtt.pe3.2.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 123.793 | 0.450 | 0.013 | 0.507 |
| sResp | 1 | 34 | 153.931 | 9.048 | 0.210 | 0.005 |
| Btw:sResp | 1 | 34 | 153.931 | 0.731 | 0.021 | 0.399 |
출처 반응의 주효과가 유의하였다.
p3.AsyPtt.pe3.m1 <- emmeans(p3.AsyPtt.pe3.2.aov, pairwise ~ sResp | Btw, type = "response")
p3.AsyPtt.pe3.m1$contrasts %>% kable(digits=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| Intrusion - Source.Confusion | 1 | 11.296 | 4.136 | 34 | 2.731 | 0.010 |
| Intrusion - Source.Confusion | 2 | 6.296 | 4.136 | 34 | 1.522 | 0.137 |
p3.AsyPtt.pe3.m2 <- emmeans(p3.AsyPtt.pe3.2.aov, pairwise ~ Btw | sResp, type = "response")
p3.AsyPtt.pe3.m2$contrasts %>% kable(digits=3)| contrast | sResp | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| 1 - 2 | Intrusion | 4.259 | 4.661 | 34 | 0.914 | 0.367 |
| 1 - 2 | Source.Confusion | -0.741 | 3.022 | 34 | -0.245 | 0.808 |
실험 집단에서 Source Confusion (L1>D2)이 Intrusion (L2>D1)보다 유의하게 낮은 비대칭적 출처 오귀인 패턴을 보였다. 실험 집단과 통제 집단 간의 Intrusion (L2>D1)의 차이는 나타나지 않았다.
A <- plot(p3.AsyPtt.pe1.m1, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
B <- plot(p3.AsyPtt.pe2.m1, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
C <- plot(p3.AsyPtt.pe3.m1, horizontal=F, comparisons=T) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
ggpubr::ggarrange(A, B, C, ncol=3,
labels = c("A) PE 1 (0%)", "B) PE 2 (50%)", "C) PE 3 (100%)"),
hjust = -0.1, vjust=1, font.label = list(size = 16)) 종합하자면, 예측 오류 조건에 따른 각 집단의 Intrusion과 Source Confusion의 비대칭적 패턴은 PE 2(50%) 조건과 PE 3(100%) 조건의 실험집단에서 관찰되었다. 또한 PE 2(50%) 조건에서 실험 집단은 통제 집단보다 높은 Intrusion을 보였다.
각 집단과 예측 오류 조건에서 List 1 Correct의 차이가 있는지 확인하기 위해 각 조건에 대한 정확도 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 오차 막대는 95% 신뢰구간을 표시한다.
## List 1 Correct Response
# long format
p3.Acc.long.all.1 <- p3 %>% filter(cSrc == "List_1", cPE != "pe0") %>% group_by(SN, Btw, cPE) %>%
summarise(Acc = mean(Correct)*100) %>% ungroup()
p3.Acc.long.exp.1 <- p3.Acc.long.all.1 %>% filter(Btw==1)
p3.Acc.long.con.1 <- p3.Acc.long.all.1 %>% filter(Btw==2)
# wide format
p3.Acc.swide.all.1 <- p3.Acc.long.all.1 %>% spread(key = cPE, value = Acc)
p3.Acc.swide.exp.1 <- p3.Acc.swide.all.1 %>% filter(Btw==1)
p3.Acc.swide.con.1 <- p3.Acc.swide.all.1 %>% filter(Btw==2)
# summary
p3.Acc.g.all.1 <- p3.Acc.long.all.1 %>% group_by(Btw, cPE) %>%
summarise(Acc.M = mean(Acc), Acc.SD = sd(Acc)) %>% ungroup()
p3.Acc.g.all.1$Acc.se <- Rmisc::summarySEwithin(data = p3.Acc.long.all.1, measurevar = "Acc",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.g.all.1$Acc.ci <- Rmisc::summarySEwithin(data = p3.Acc.long.all.1, measurevar = "Acc",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.g.exp.1 <- p3.Acc.g.all.1 %>% filter(Btw==1)
p3.Acc.g.con.1 <- p3.Acc.g.all.1 %>% filter(Btw==2)
p3.Acc.g.all.1 %>% kable(digits=2)| Btw | cPE | Acc.M | Acc.SD | Acc.se | Acc.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 74.07 | 13.31 | 1.83 | 3.86 |
| 1 | pe2 | 76.85 | 12.39 | 1.97 | 4.16 |
| 1 | pe3 | 75.37 | 11.44 | 2.04 | 4.31 |
| 2 | pe1 | 69.07 | 14.45 | 2.13 | 4.50 |
| 2 | pe2 | 73.33 | 15.47 | 2.78 | 5.86 |
| 2 | pe3 | 71.85 | 9.51 | 2.61 | 5.51 |
## plot
p3.Acc.g.all.1.p3 <- p3.Acc.g.all.1
p3.Acc.g.all.1.p3$Btw <- factor(p3.Acc.g.all.1.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.2.all.1.p3 <- ggplot(data=p3.Acc.g.all.1.p3,
aes(x=cPE, y=Acc.M, ymin=Acc.M-Acc.ci, ymax=Acc.M+Acc.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(40,100), clip = "on") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# scale_y_continuous(breaks = seq(0,80)) +
labs(x = "Prediction Error", y = "List 1 Correct (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.25),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
p3.plot2.2.exp.1 <- ggplot(p3.Acc.g.exp.1, mapping=aes(x=cPE, y=Acc.M, group=1)) +
geom_ribbon(aes(ymin=Acc.M-Acc.ci, ymax=Acc.M+Acc.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Acc.M, ymax=Acc.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.long.exp.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Acc, group=SN, color=SN)) +
geom_point(p3.Acc.long.exp.1, mapping = aes(x=cPE, y=Acc, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(30, 100), clip = "on") +
labs(x = "Prediction Error", y = "List 1 Correct (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Source Memory (L1>D1; Exp)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
aspect.ratio = 1,
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
p3.plot2.2.con.1 <- ggplot(p3.Acc.g.con.1, mapping=aes(x=cPE, y=Acc.M, group=1)) +
geom_ribbon(aes(ymin=Acc.M-Acc.ci, ymax=Acc.M+Acc.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Acc.M, ymax=Acc.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.long.con.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Acc, group=SN, color=SN)) +
geom_point(p3.Acc.long.con.1, mapping = aes(x=cPE, y=Acc, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(30, 100), clip = "on") +
labs(x = "Prediction Error", y = "List 1 Correct (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Source Memory (L1>D1; Con)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
aspect.ratio = 1,
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.plot2.2.all.1.p3, p3.plot2.2.exp.1, p3.plot2.2.con.1, ncol=3,
labels = c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16)) 집단과 예측 오류 조건을 요인으로한 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.all.aov.1 <- aov_ez(id = "SN", dv = "Acc", data = p3.Acc.long.all.1, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.1, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 294.269 | 1.477 | 0.042 | 0.233 |
| cPE | 1.903 | 64.685 | 108.204 | 1.091 | 0.031 | 0.339 |
| Btw:cPE | 1.903 | 64.685 | 108.204 | 0.064 | 0.002 | 0.931 |
분석 결과, 모든 효과가 유의하지 않았다.
분산 분석 결과를 보충하기 위해, 집단과 예측 오류 조건에 따른 List 1 Correct에 대하여 일반화 선형 혼합 효과 모형을 검증하였다. 집단, 예측 오류 조건을 고정 효과로 하고 참가자와 자극의 무선 효과를 포함한 p3.L1.src.corr.Model을 구성하였다.
p3.L1.src.corr <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.L1.src.corr <- p3.L1.src.corr %>% filter(cSrc == 1)
p3.L1.src.corr$SN = factor(p3.L1.src.corr$SN); p3.L1.src.corr$Btw = factor(p3.L1.src.corr$Btw)
p3.L1.src.corr$cSrc = factor(p3.L1.src.corr$cSrc, labels=c("List_1"))
p3.L1.src.corr$cPE = factor(p3.L1.src.corr$cPE, levels=c(1,2,3), labels=c("pe1","pe2","pe3"))
p3.L1.src.corr$Resp <- factor(p3.L1.src.corr$Resp, levels=c(1,2,3), labels=c("Day_1", "Day_2", "New"))
p3.L1.src.corr$Correct <- as.numeric(p3.L1.src.corr$Corr==1)
p3.L1.src.corr$Int <- as.numeric(p3.L1.src.corr$Corr==3); p3.L1.src.corr$Err <- as.numeric(p3.L1.src.corr$Corr==2);
p3.L1.src.corr$Incorr <- as.numeric(p3.L1.src.corr$Corr==0)
p3.L1.src.corr.exp <- p3.L1.src.corr %>% filter(Btw == 1)
p3.L1.src.corr.con <- p3.L1.src.corr %>% filter(Btw == 2)(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.L1.src.corr.Model.1 <- afex::mixed(Correct ~ Btw*cPE + (1|SN) + (1|IMname),
p3.L1.src.corr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.src.corr.Model.1, file="memudet_day3_L1src_corr.Rdata")
stopCluster(cl)anova(p3.L1.src.corr.Model.1) %>% kable(digit=3)분석 결과, 모든 효과가 유의하지 않았다.
Source Confusion에서 집단과 예측 오류 조건에 따른 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 1 Source Confusion
# long format
p3.Err.long.all <- p3 %>% filter(cSrc == "List_1", cPE != "pe0") %>% group_by(SN, Btw, cPE) %>%
summarise(Error = mean(Err)*100) %>% ungroup()
p3.Err.wide.all <- p3.Err.long.all %>% spread(key = cPE, value = Error)
p3.Err.long.all <- gather(p3.Err.wide.all, cPE, Error, pe1:pe3, factor_key=TRUE)
p3.Err.long.all[is.na(p3.Err.long.all)] <- 0
p3.Err.long.all <- arrange(p3.Err.long.all, SN, Btw, Error)
p3.Err.long.exp <- p3.Err.long.all %>% filter(Btw==1)
p3.Err.long.con <- p3.Err.long.all %>% filter(Btw==2)
# wide format
p3.Err.swide.all <- p3.Err.long.all %>% spread(key = cPE, value = Error)
p3.Err.swide.exp <- p3.Err.swide.all %>% filter(Btw==1)
p3.Err.swide.con <- p3.Err.swide.all %>% filter(Btw==2)
# summary
p3.Err.g.all <- p3.Err.long.all %>% group_by(Btw, cPE) %>%
summarise(Err.M = mean(Error), Err.SD = sd(Error)) %>% ungroup()
p3.Err.g.all$Err.se <- Rmisc::summarySEwithin(data = p3.Err.long.all, measurevar = "Error",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Err.g.all$Err.ci <- Rmisc::summarySEwithin(data = p3.Err.long.all, measurevar = "Error",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Err.g.exp <- p3.Err.g.all %>% filter(Btw==1)
p3.Err.g.con <- p3.Err.g.all %>% filter(Btw==2)
p3.Err.g.all %>% kable(digits=2)| Btw | cPE | Err.M | Err.SD | Err.se | Err.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 23.89 | 12.38 | 1.81 | 3.82 |
| 1 | pe2 | 19.26 | 10.20 | 2.05 | 4.33 |
| 1 | pe3 | 20.74 | 9.81 | 1.97 | 4.15 |
| 2 | pe1 | 27.78 | 13.48 | 2.32 | 4.90 |
| 2 | pe2 | 22.59 | 12.81 | 2.41 | 5.09 |
| 2 | pe3 | 21.48 | 8.26 | 2.11 | 4.44 |
## plot
p3.Err.g.all.p3 <- p3.Err.g.all
p3.Err.g.all.p3$Btw <- factor(p3.Err.g.all.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.3.all.1.p3 <- ggplot(data=p3.Err.g.all.p3,
aes(x=cPE, y=Err.M, ymin=Err.M-Err.ci, ymax=Err.M+Err.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,70), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
labs(x = "Prediction Error", y = "Source Confusion (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.85),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
# p3.plot2.3.all.1.p3
p3.plot2.3.exp <- ggplot(p3.Err.g.exp, mapping=aes(x=cPE, y=Err.M, group=1)) +
geom_ribbon(aes(ymin=Err.M-Err.ci, ymax=Err.M+Err.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Err.M, ymax=Err.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Err.long.exp, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Error, group=SN, color=SN)) +
geom_point(p3.Err.long.exp, mapping = aes(x=cPE, y=Error, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(0, 80), clip = "on") +
labs(x = "Prediction Error", y = "Source Confusion (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Source Confusions (L1>D2; Exp)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
aspect.ratio = 1,
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
p3.plot2.3.con <- ggplot(p3.Err.g.con, mapping=aes(x=cPE, y=Err.M, group=1)) +
geom_ribbon(aes(ymin=Err.M-Err.ci, ymax=Err.M+Err.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Err.M, ymax=Err.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Err.long.con, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Error, group=SN, color=SN)) +
geom_point(p3.Err.long.con, mapping = aes(x=cPE, y=Error, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(0, 80), clip = "on") +
labs(x = "Prediction Error", y = "Source Confusion (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Source Confusions (L1>D2; Con)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
aspect.ratio = 1,
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.plot2.3.all.1.p3, p3.plot2.3.exp, p3.plot2.3.con, ncol=3,
labels = c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16)) Source Confusion이 집단, 예측 오류 조건에 따라 다른지 살펴보기 위해, 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Err.all.aov <- aov_ez(id = "SN", dv = "Error", data = p3.Err.long.all, between = "Btw", within = "cPE")
anova(p3.Err.all.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 221.672 | 0.858 | 0.025 | 0.361 |
| cPE | 1.973 | 67.069 | 82.164 | 3.437 | 0.092 | 0.039 |
| Btw:cPE | 1.973 | 67.069 | 82.164 | 0.314 | 0.009 | 0.729 |
분석 결과, 예측 오류 조건의 주효과가 유의하였다.
p3.scnf.m1.all <- emmeans(p3.Err.all.aov, pairwise ~ cPE | Btw, type = "response")
p3.scnf.m1.all$contrasts %>% kable(digits=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| pe1 - pe2 | 1 | 4.630 | 3.116 | 34 | 1.486 | 0.310 |
| pe1 - pe3 | 1 | 3.148 | 2.822 | 34 | 1.115 | 0.511 |
| pe2 - pe3 | 1 | -1.481 | 3.056 | 34 | -0.485 | 0.879 |
| pe1 - pe2 | 2 | 5.185 | 3.116 | 34 | 1.664 | 0.234 |
| pe1 - pe3 | 2 | 6.296 | 2.822 | 34 | 2.231 | 0.080 |
| pe2 - pe3 | 2 | 1.111 | 3.056 | 34 | 0.364 | 0.930 |
p3.scnf.m2.all <- emmeans(p3.Err.all.aov, pairwise ~ Btw | cPE, type = "response")
p3.scnf.m2.all$contrasts %>% kable(digits=3)| contrast | cPE | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| 1 - 2 | pe1 | -3.889 | 4.314 | 34 | -0.901 | 0.374 |
| 1 - 2 | pe2 | -3.333 | 3.859 | 34 | -0.864 | 0.394 |
| 1 - 2 | pe3 | -0.741 | 3.022 | 34 | -0.245 | 0.808 |
사후 분석 결과, 모든 비교가 유의하지 않았다.
분산 분석 결과를 보충하기 위해, 집단과 예측 오류 조건에 따른 Source Confusion에 대하여 일반화 선형 혼합 효과 모형을 검증하였다. 집단과 예측 오류 조건을 고정 효과로 하고 참가자와 자극의 무선 효과를 포함한 p3.L1.src.corr.Model을 구성하였다.
p3.L1.src.corr <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.L1.src.corr <- p3.L1.src.corr %>% filter(cSrc == 1)
p3.L1.src.corr$SN = factor(p3.L1.src.corr$SN); p3.L1.src.corr$Btw = factor(p3.L1.src.corr$Btw)
p3.L1.src.corr$cSrc = factor(p3.L1.src.corr$cSrc, labels=c("List_1"))
p3.L1.src.corr$cPE = factor(p3.L1.src.corr$cPE, levels=c(1,2,3), labels=c("pe1","pe2","pe3"))
p3.L1.src.corr$Resp <- factor(p3.L1.src.corr$Resp, levels=c(1,2,3), labels=c("Day_1", "Day_2", "New"))
p3.L1.src.corr$Correct <- as.numeric(p3.L1.src.corr$Corr==1)
p3.L1.src.corr$Int <- as.numeric(p3.L1.src.corr$Corr==3); p3.L1.src.corr$Err <- as.numeric(p3.L1.src.corr$Corr==2);
p3.L1.src.corr$Incorr <- as.numeric(p3.L1.src.corr$Corr==0)
p3.L1.src.corr.exp <- p3.L1.src.corr %>% filter(Btw == 1)
p3.L1.src.corr.con <- p3.L1.src.corr %>% filter(Btw == 2)(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.L1.src.scnf.Model.1 <- afex::mixed(Err ~ Btw*cPE + (1|SN) + (1|IMname),
p3.L1.src.corr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.L1.src.scnf.Model.1, file="memudet_day3_L1src_scnf.Rdata")
stopCluster(cl)anova(p3.L1.src.scnf.Model.1) %>% kable(digit=3)분석 결과, 예측 오류의 주효과가 유의하였다.
p3.L1.src.scnf.m1 <- emmeans(p3.L1.src.scnf.Model.1, pairwise ~ cPE | Btw , type = "response", adjust="bon") # adjust="bon"
p3.L1.src.scnf.m1$contrasts %>% kable(digits=3)사후 분석 결과, 통제 집단에서 예측 오류가 수반되지 않았던 PE 1은 PE 3 보다 유의하게 높은 Source Confusion (L1>D2) 반응을 보였다.
집단과 예측 오류 조건에 따른 List 2 Correct 차이를 분석하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 오차 막대는 95% 신뢰구간을 표시한다.
## List 2 Correct Source Memory
# long format
p3.Acc.long.all.2 <- p3 %>% filter(cSrc == "List_2", cPE != "pe0") %>% group_by(SN, Btw, cPE) %>%
summarise(Acc = mean(Correct)*100) %>% ungroup()
p3.Acc.long.exp.2 <- p3.Acc.long.all.2 %>% filter(Btw==1)
p3.Acc.long.con.2 <- p3.Acc.long.all.2 %>% filter(Btw==2)
# wide format
p3.Acc.swide.all.2 <- p3.Acc.long.all.2 %>% spread(key = cPE, value = Acc)
p3.Acc.swide.exp.2 <- p3.Acc.swide.all.2 %>% filter(Btw==1)
p3.Acc.swide.con.2 <- p3.Acc.swide.all.2 %>% filter(Btw==2)
# summary
p3.Acc.g.all.2 <- p3.Acc.long.all.2 %>% group_by(Btw, cPE) %>%
summarise(Acc.M = mean(Acc), Acc.SD = sd(Acc)) %>% ungroup()
p3.Acc.g.all.2$Acc.se <- Rmisc::summarySEwithin(data = p3.Acc.long.all.2, measurevar = "Acc",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.g.all.2$Acc.ci <- Rmisc::summarySEwithin(data = p3.Acc.long.all.2, measurevar = "Acc",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.g.exp.2 <- p3.Acc.g.all.2 %>% filter(Btw==1)
p3.Acc.g.con.2 <- p3.Acc.g.all.2 %>% filter(Btw==2)
p3.Acc.g.all.2 %>% kable(digits=2)| Btw | cPE | Acc.M | Acc.SD | Acc.se | Acc.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 71.11 | 10.66 | 1.62 | 3.42 |
| 1 | pe2 | 61.48 | 13.59 | 1.43 | 3.01 |
| 1 | pe3 | 65.56 | 16.57 | 1.74 | 3.68 |
| 2 | pe1 | 71.67 | 13.49 | 2.27 | 4.79 |
| 2 | pe2 | 70.56 | 13.15 | 2.12 | 4.48 |
| 2 | pe3 | 69.63 | 12.41 | 2.12 | 4.48 |
## plot
p3.Acc.g.all.2.p3 <- p3.Acc.g.all.2
p3.Acc.g.all.2.p3$Btw <- factor(p3.Acc.g.all.2.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.2.all.2.p3 <- ggplot(data=p3.Acc.g.all.2.p3,
aes(x=cPE, y=Acc.M, ymin=Acc.M-Acc.ci, ymax=Acc.M+Acc.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(40,100), clip = "on") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# scale_y_continuous(breaks = seq(0,80)) +
labs(x = "Prediction Error", y = "List 2 Correct (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.25),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
# p3.plot2.2.all.2.p3
p3.plot2.2.exp.2 <- ggplot(p3.Acc.g.exp.2, mapping=aes(x=cPE, y=Acc.M, group=1)) +
geom_ribbon(aes(ymin=Acc.M-Acc.ci, ymax=Acc.M+Acc.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Acc.M, ymax=Acc.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.long.exp.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Acc, group=SN, color=SN)) +
geom_point(p3.Acc.long.exp.2, mapping = aes(x=cPE, y=Acc, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(30, 100), clip = "on") +
labs(x = "Prediction Error", y = "List 2 Correct (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 2 Source Memory (L2>D2; Exp)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
aspect.ratio = 1,
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
p3.plot2.2.con.2 <- ggplot(p3.Acc.g.con.2, mapping=aes(x=cPE, y=Acc.M, group=1)) +
geom_ribbon(aes(ymin=Acc.M-Acc.ci, ymax=Acc.M+Acc.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Acc.M, ymax=Acc.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.long.con.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Acc, group=SN, color=SN)) +
geom_point(p3.Acc.long.con.2, mapping = aes(x=cPE, y=Acc, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(30, 100), clip = "on") +
labs(x = "Prediction Error", y = "List 2 Correct (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 2 Source Memory (L2>D2; Con)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
aspect.ratio = 1,
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.plot2.2.all.2.p3, p3.plot2.2.exp.2, p3.plot2.2.con.2, ncol=3,
labels = c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16)) List 2 Correct에 대하여 집단과 예측 오류 조건을 요인으로한 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc2.all.aov <- aov_ez(id = "SN", dv = "Acc", data = p3.Acc.long.all.2, between = "Btw", within = "cPE")
anova(p3.Acc2.all.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 393.343 | 1.432 | 0.040 | 0.240 |
| cPE | 1.978 | 67.256 | 74.606 | 3.718 | 0.099 | 0.030 |
| Btw:cPE | 1.978 | 67.256 | 74.606 | 2.235 | 0.062 | 0.115 |
분석 결과, 예측 오류의 주효과가 유의하였다.
p3.Acc2.m1.all <- emmeans(p3.Acc2.all.aov, pairwise ~ cPE | Btw, type = "response")
p3.Acc2.m1.all$contrasts %>% kable(digits = 3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| pe1 - pe2 | 1 | 9.630 | 2.813 | 34 | 3.424 | 0.005 |
| pe1 - pe3 | 1 | 5.556 | 3.008 | 34 | 1.847 | 0.170 |
| pe2 - pe3 | 1 | -4.074 | 2.764 | 34 | -1.474 | 0.316 |
| pe1 - pe2 | 2 | 1.111 | 2.813 | 34 | 0.395 | 0.918 |
| pe1 - pe3 | 2 | 2.037 | 3.008 | 34 | 0.677 | 0.778 |
| pe2 - pe3 | 2 | 0.926 | 2.764 | 34 | 0.335 | 0.940 |
p3.Acc2.m1.all.2 <- emmeans(p3.Acc2.all.aov, pairwise ~ Btw | cPE, type = "response")
p3.Acc2.m1.all.2$contrasts %>% kable(digits = 3)| contrast | cPE | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| 1 - 2 | pe1 | -0.556 | 4.053 | 34 | -0.137 | 0.892 |
| 1 - 2 | pe2 | -9.074 | 4.456 | 34 | -2.036 | 0.050 |
| 1 - 2 | pe3 | -4.074 | 4.880 | 34 | -0.835 | 0.410 |
사후 분석 결과, 실험 집단에서 PE 1 조건이 PE 2 조건보다 유의하게 높은 List 2 Correct 수준을 보이는 것으로 나타났다. 각 예측 오류 조건에서 두 집단 차이를 살펴본 결과, PE 2 조건에서 통제 집단이 실험 집단보다 우수한 것으로 나타났다.
분산 분석 결과를 보충하기 위하여, 집단과 예측 오류를 고정 효과로 하고 참가자와 자극을 무선 효과로 설정한 일반화 선형 혼합 모형을 검증하였다.
p3.L2.src.corr <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.L2.src.corr <- p3.L2.src.corr %>% filter(cSrc == 2)
p3.L2.src.corr$SN = factor(p3.L2.src.corr$SN); p3.L2.src.corr$Btw = factor(p3.L2.src.corr$Btw)
p3.L2.src.corr$cSrc = factor(p3.L2.src.corr$cSrc, labels=c("List_2"))
p3.L2.src.corr$cPE = factor(p3.L2.src.corr$cPE, levels=c(1,2,3), labels=c("pe1","pe2","pe3"))
p3.L2.src.corr$Resp <- factor(p3.L2.src.corr$Resp, levels=c(1,2,3), labels=c("Day_1", "Day_2", "New"))
p3.L2.src.corr$Correct <- as.numeric(p3.L2.src.corr$Corr==1)
p3.L2.src.corr$Int <- as.numeric(p3.L2.src.corr$Corr==3); p3.L2.src.corr$Err <- as.numeric(p3.L2.src.corr$Corr==2);
p3.L2.src.corr$Incorr <- as.numeric(p3.L2.src.corr$Corr==0)
p3.L2.src.corr.exp <- p3.L2.src.corr %>% filter(Btw == 1)
p3.L2.src.corr.con <- p3.L2.src.corr %>% filter(Btw == 2)(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.L2.src.corr.Model.1 <- afex::mixed(Correct ~ Btw*cPE + (1|SN),
p3.L2.src.corr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
p3.L2.src.corr.Model.2 <- afex::mixed(Correct ~ Btw*cPE + (1|SN) + (1|IMname),
p3.L2.src.corr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.L2.src.corr.Model.1, p3.L2.src.corr.Model.2, file="memudet_day3_Acc2_afex.Rdata")
stopCluster(cl)p3.L2.src.corr.Model.2는 과적합되어 분석에서 제외하였다.
anova(p3.L2.src.corr.Model.1) %>% kable(digits=3)p1.Acc.Model.1 분석 결과, 예측 오류 조건의 주효과는 유의하였다.
p3.acc2.m3.all <- emmeans(p3.L2.src.corr.Model.1, pairwise ~ cPE | Btw, type = "response")
p3.acc2.m3.all$contrasts %>% kable(digits=3)사후 분석 결과, 실험 집단에서 PE 1 조건이 PE 2 조건 보다 유의하게 높은 List 2 Correct (L2>D2) 수준을 보이는 것으로 나타났다.
Intrusion의 집단과 예측 오류 조건에 따른 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 2 Intrusion
# long format
p3.Intru.long.all <- p3 %>% filter(cSrc == "List_2", cPE != "pe0") %>% group_by(SN, Btw, cPE) %>%
summarise(Intrusion = mean(Int)*100) %>%
ungroup()
p3.Intru.long.exp <- p3.Intru.long.all %>% filter(Btw==1)
p3.Intru.long.con <- p3.Intru.long.all %>% filter(Btw==2)
# wide format
p3.Intru.swide.all <- p3.Intru.long.all %>% spread(key = cPE, value = Intrusion)
p3.Intru.swide.exp <- p3.Intru.swide.all %>% filter(Btw==1)
p3.Intru.swide.con <- p3.Intru.swide.all %>% filter(Btw==2)
# summary
p3.Intru.g.all <- p3.Intru.long.all %>% group_by(Btw, cPE) %>%
summarise(Intru.M = mean(Intrusion), Intru.SD = sd(Intrusion)) %>% ungroup()
p3.Intru.g.all$Intru.se <- Rmisc::summarySEwithin(data = p3.Intru.long.all, measurevar = "Intrusion",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Intru.g.all$Intru.ci <- Rmisc::summarySEwithin(data = p3.Intru.long.all, measurevar = "Intrusion",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Intru.g.exp <- p3.Intru.g.all %>% filter(Btw==1)
p3.Intru.g.con <- p3.Intru.g.all %>% filter(Btw==2)
p3.Intru.g.all %>% kable(digits=2)| Btw | cPE | Intru.M | Intru.SD | Intru.se | Intru.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 26.67 | 9.57 | 1.60 | 3.37 |
| 1 | pe2 | 36.48 | 13.79 | 1.53 | 3.24 |
| 1 | pe3 | 32.04 | 15.56 | 1.81 | 3.82 |
| 2 | pe1 | 25.19 | 13.05 | 2.32 | 4.89 |
| 2 | pe2 | 24.26 | 10.71 | 2.11 | 4.44 |
| 2 | pe3 | 27.78 | 12.21 | 2.06 | 4.34 |
## plot
p3.Intru.g.all.p3 <- p3.Intru.g.all
p3.Intru.g.all.p3$Btw <- factor(p3.Intru.g.all.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.1.all.p3 <- ggplot(data=p3.Intru.g.all.p3,
aes(x=cPE, y=Intru.M, ymin=Intru.M-Intru.ci, ymax=Intru.M+Intru.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,70), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
labs(x = "Prediction Error", y = "Intrusion (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.85),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
# p3.plot2.1.all.p3
p3.plot2.1.exp <- ggplot(p3.Intru.g.exp, mapping=aes(x=cPE, y=Intru.M, group=1)) +
geom_ribbon(aes(ymin=Intru.M-Intru.ci, ymax=Intru.M+Intru.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Intru.M, ymax=Intru.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Intru.long.exp, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Intrusion, group=SN, color=SN)) +
geom_point(p3.Intru.long.exp, mapping = aes(x=cPE, y=Intrusion, group=SN, color = SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(0, 80), clip = "on") +
labs(x = "Prediction Error", y = "Intrusion (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Intrusion (L2>D1; Exp)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
aspect.ratio = 1,
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
p3.plot2.1.con <- ggplot(p3.Intru.g.con, mapping=aes(x=cPE, y=Intru.M, group=1)) +
geom_ribbon(aes(ymin=Intru.M-Intru.ci, ymax=Intru.M+Intru.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Intru.M, ymax=Intru.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Intru.long.con, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Intrusion, group=SN, color=SN)) +
geom_point(p3.Intru.long.con, mapping = aes(x=cPE, y=Intrusion, group=SN, color = SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(0, 80), clip = "on") +
labs(x = "Prediction Error", y = "Intrusion (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Intrusion (L2>D1; Con)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
aspect.ratio = 1,
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.plot2.1.all.p3, p3.plot2.1.exp, p3.plot2.1.con, ncol=3,
labels = c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))Intrusion에 대하여 집단과 예측 오류 조건을 요인으로 하는 2 X 3 혼합 요인 분산분석으로 수행하였다.
p3.Intru.all.aov <- aov_ez(id = "SN", dv = "Intrusion", data = p3.Intru.long.all, between = "Btw", within = "cPE")
anova(p3.Intru.all.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 328.861 | 2.944 | 0.080 | 0.095 |
| cPE | 1.984 | 67.457 | 75.597 | 2.866 | 0.078 | 0.064 |
| Btw:cPE | 1.984 | 67.457 | 75.597 | 3.730 | 0.099 | 0.029 |
분석 결과, 집단과 예측 오류 조건의 상호 작용은 유의하였다.
p3.Intru.m1.all <- emmeans(p3.Intru.all.aov, pairwise ~ cPE | Btw, type = "response")
p3.Intru.m1.all$contrasts %>% kable(digits=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| pe1 - pe2 | 1 | -9.815 | 2.866 | 34 | -3.424 | 0.005 |
| pe1 - pe3 | 1 | -5.370 | 3.005 | 34 | -1.787 | 0.189 |
| pe2 - pe3 | 1 | 4.444 | 2.784 | 34 | 1.596 | 0.261 |
| pe1 - pe2 | 2 | 0.926 | 2.866 | 34 | 0.323 | 0.944 |
| pe1 - pe3 | 2 | -2.593 | 3.005 | 34 | -0.863 | 0.667 |
| pe2 - pe3 | 2 | -3.519 | 2.784 | 34 | -1.264 | 0.425 |
p3.Intru.m2.all <- emmeans(p3.Intru.all.aov, pairwise ~ Btw | cPE, type = "response")
p3.Intru.m2.all$contrasts %>% kable(digits=3)| contrast | cPE | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| 1 - 2 | pe1 | 1.481 | 3.813 | 34 | 0.389 | 0.700 |
| 1 - 2 | pe2 | 12.222 | 4.116 | 34 | 2.969 | 0.005 |
| 1 - 2 | pe3 | 4.259 | 4.661 | 34 | 0.914 | 0.367 |
분석 결과, 실험 집단에서 PE 1은 PE 2보다 유의하게 낮은 Intrusion 반응을 보였다. PE 1과 PE 3, PE 2와 PE 3 간의 차이는 유의하지 않았다. 통제 집단에서는 모든 비교가 유의하지 않았다. 또한 PE 2에서 실험 집단은 통제 집단보다 유의하게 높은 Intrusion 반응을 보였다.
분산분석 결과를 보충하기 위해, 집단과 예측 오류를 고정 효과로 하고 참가자와 자극을 무선 효과로 설정한 일반화 선형 혼합 모형 p3.Int.Model을 검증하였다.
p3.glmm.int <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.glmm.int <- p3.glmm.int %>% filter(cSrc == 2)
p3.glmm.int$SN = factor(p3.glmm.int$SN); p3.glmm.int$Btw = factor(p3.glmm.int$Btw)
p3.glmm.int$cPE = factor(p3.glmm.int$cPE, levels=c(1,2,3), labels=c("pe1","pe2","pe3"))
p3.glmm.int$RT <- p3.glmm.int$RT*1000; p3.glmm.int$Correct <- as.numeric(p3.glmm.int$Corr==1)
p3.glmm.int$Int <- as.numeric(p3.glmm.int$Corr==3);
p3.glmm.int.exp <- p3.glmm.int %>% filter(Btw == 1)
p3.glmm.int.con <- p3.glmm.int %>% filter(Btw == 2)(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.Int.Model.1 <- afex::mixed(Int ~ Btw*cPE + (1|SN) + (1|IMname),
p3.glmm.int, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.Int.Model.1, file="memudet_day3_Int_afex.Rdata")
stopCluster(cl)anova(p3.Int.Model.1) %>% kable(digits=3)분석 결과, 예측 오류의 주효과, 집단과 예측 오류 간의 상호작용이 유의하였다. 집단 내에서의 예측 오류 효과와 각 예측 오류 조건에서의 집단 간 사후분석을 수행하였다.
p3.Intru.m3.all <- emmeans(p3.Int.Model.1, pairwise ~ cPE | Btw, type = "response")
p3.Intru.m3.all$contrasts %>% kable(digits=3)
p3.Intru.m4.all <- emmeans(p3.Int.Model.1, pairwise ~ Btw | cPE, type = "response")
p3.Intru.m4.all$contrasts %>% kable(digits=4)
# plot(p3.Intru.m3.all, horizontal=F, comparison=T)분석 결과, 실험 집단에서 PE 1은 PE 2보다 유의하게 낮은 Intrusion 반응을 보였다. PE 1과 PE 3, PE 2와 PE 3 간의 차이는 유의하지 않았다. 통제 집단에서는 모든 비교가 유의하지 않았다. 또한 PE 2에서 실험 집단은 통제 집단보다 유의하게 높은 Intrusion 반응을 보였다.
집단과 예측 오류 조건에 따른 기억 갱신 점수(Updating Score)를 살펴보았다. 기억 갱신 점수(Updating Score)는 Intrusion과 Source Confusion의 차이로, 출처 기억 반응에서 Intrusion과 Source Confusion간의 비대칭적 반응 패턴을 반영하기 위해 구성하였다. 양수의 값은 Intrusion이 Source Confusion 보다 높은 경우를 나타낸다. 각 집단의 참가자별로 US의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## Updating Score
# long format
p3.us <- merge(p3.Intru.long.all, p3.Err.long.all, key=c(SN,cPE))
p3.us <- arrange(p3.us, SN, Btw, cPE)
p3.US.long.all <- p3.us %>% group_by(SN, Btw, cPE) %>%
summarise(US = (Intrusion - Error)) %>% ungroup()
p3.US.long.exp <- p3.US.long.all %>% filter(Btw==1)
p3.US.long.con <- p3.US.long.all %>% filter(Btw==2)
# wide format
p3.US.swide.all <- p3.US.long.all %>% spread(key = cPE, value = US)
p3.US.swide.exp <- p3.US.swide.all %>% filter(Btw==1)
p3.US.swide.con <- p3.US.swide.all %>% filter(Btw==2)
# summary
p3.US.g.all <- p3.US.long.all %>% group_by(Btw, cPE) %>%
summarise(US.M = mean(US), US.SD = sd(US)) %>% ungroup()
p3.US.g.all$US.se <- Rmisc::summarySEwithin(data = p3.US.long.all, measurevar = "US",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.US.g.all$US.ci <- Rmisc::summarySEwithin(data = p3.US.long.all, measurevar = "US",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.US.g.exp <- p3.US.g.all %>% filter(Btw==1)
p3.US.g.con <- p3.US.g.all %>% filter(Btw==2)
p3.US.g.all %>% kable(digits=2)| Btw | cPE | US.M | US.SD | US.se | US.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 2.78 | 16.46 | 2.89 | 6.11 |
| 1 | pe2 | 17.22 | 18.48 | 2.91 | 6.13 |
| 1 | pe3 | 11.30 | 19.64 | 3.06 | 6.46 |
| 2 | pe1 | -2.59 | 19.95 | 3.44 | 7.27 |
| 2 | pe2 | 1.67 | 20.62 | 3.34 | 7.06 |
| 2 | pe3 | 6.30 | 15.16 | 3.41 | 7.20 |
## plot
p3.US.g.all.p3 <- p3.US.g.all
p3.US.g.all.p3$Btw <- factor(p3.US.g.all.p3$Btw, labels=c("Experimental", "Control"))
p3.plot5.1.all.p3 <- ggplot(data=p3.US.g.all.p3,
aes(x=cPE, y=US.M, ymin=US.M-US.ci, ymax=US.M+US.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(-50,50), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
labs(x = "Prediction Error", y = "Updating Score") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.20),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
# p3.plot5.1.all.p3
p3.plot2.5.exp <- ggplot(p3.US.g.exp, mapping=aes(x=cPE, y=US.M, group=1)) +
geom_ribbon(aes(ymin=US.M-US.ci, ymax=US.M+US.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=US.M, ymax=US.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.US.long.exp, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=US, group=SN, color=SN)) +
geom_point(p3.US.long.exp, mapping = aes(x=cPE, y=US, group=SN, color = SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(-50, +50), clip = "on") +
labs(x = "Prediction Error", y = "Updating Score") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Updating Score (Exp)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
aspect.ratio = 1,
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
p3.plot2.5.con <- ggplot(p3.US.g.con, mapping=aes(x=cPE, y=US.M, group=1)) +
geom_ribbon(aes(ymin=US.M-US.ci, ymax=US.M+US.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=US.M, ymax=US.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.US.long.con, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=US, group=SN, color=SN)) +
geom_point(p3.US.long.con, mapping = aes(x=cPE, y=US, group=SN, color = SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(-50, +50), clip = "on") +
labs(x = "Prediction Error", y = "Updating Score") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Updating Score (Con)") +
theme_bw(base_size = 18) +
theme(axis.title = element_text(face = "plain", size = 18, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# panel.border=element_blank(),
aspect.ratio = 1,
plot.margin = margin(0.3, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.plot5.1.all.p3, p3.plot2.5.exp, p3.plot2.5.con, ncol=3,
labels = c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))각 집단과 예측 오류 조건에서의 US 차이를 살펴보기 위하여 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.US.all.aov <- aov_ez(id = "SN", dv = "US", data = p3.US.long.all, between = "Btw", within = "cPE")
anova(p3.US.all.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 614.657 | 3.281 | 0.088 | 0.079 |
| cPE | 1.997 | 67.897 | 205.839 | 4.777 | 0.123 | 0.011 |
| Btw:cPE | 1.997 | 67.897 | 205.839 | 1.571 | 0.044 | 0.215 |
분석 결과, 예측 오류의 주효과가 유의하였다. 집단과 예측 오류 간의 상호작용은 유의하지 않았다.
p3.US.m1.all <- emmeans(p3.US.all.aov, pairwise ~ cPE | Btw, type = "response")
p3.US.m1.all$contrasts %>% kable(digits = 3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| pe1 - pe2 | 1 | -14.444 | 4.694 | 34 | -3.077 | 0.011 |
| pe1 - pe3 | 1 | -8.519 | 4.855 | 34 | -1.754 | 0.200 |
| pe2 - pe3 | 1 | 5.926 | 4.786 | 34 | 1.238 | 0.439 |
| pe1 - pe2 | 2 | -4.259 | 4.694 | 34 | -0.907 | 0.639 |
| pe1 - pe3 | 2 | -8.889 | 4.855 | 34 | -1.831 | 0.175 |
| pe2 - pe3 | 2 | -4.630 | 4.786 | 34 | -0.967 | 0.602 |
p3.US.m2.all <- emmeans(p3.US.all.aov, pairwise ~ Btw | cPE, type = "response")
p3.US.m2.all$contrasts %>% kable(digits = 3)| contrast | cPE | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| 1 - 2 | pe1 | 5.370 | 6.097 | 34 | 0.881 | 0.385 |
| 1 - 2 | pe2 | 15.556 | 6.526 | 34 | 2.384 | 0.023 |
| 1 - 2 | pe3 | 5.000 | 5.849 | 34 | 0.855 | 0.399 |
# plot(p3.US.m1.all, horizontal=F, comparison=T)
# plot(p3.US.m2.all, horizontal=F, comparison=T)사후 분석 결과, 실험 집단에서 PE 1보다 PE 2가 유의하게 높은 US값을 보였다. 다른 차이는 유의하지 않았다. 또한 PE 2 조건에서 실험 집단은 통제 집단보다 유의하게 높은 US값을 보였다. 그러나 앞선 분산분석에서 집단과 예측 오류의 상호작용이 유의하지 않았다는 점을 고려할 필요가 있다.
분산 분석 결과를 보충하기 위해 Updating Score에 대한 예측 오류의 주효과를 고정 효과로 하고 참가자에 의한 무선 절편을 무선 효과로 포함한 일반 선형 혼합 모형을 검증하였다.
(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.US.long.all$cPE <- factor(p3.US.long.all$cPE)
p3.US.Model.1 <- afex::mixed(US ~ Btw*cPE + (1|SN), REML = FALSE,
p3.US.long.all, method = "LRT", cl = cl,
control = lmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.US.Model.1, file="memudet_day3_US_afex.Rdata")
stopCluster(cl)anova(p3.US.Model.1) %>% kable(digits=4)| Df | Chisq | Chi Df | Pr(>Chisq) | |
|---|---|---|---|---|
| Btw | 7 | 3.3161 | 1 | 0.0686 |
| cPE | 6 | 9.4656 | 2 | 0.0088 |
| Btw:cPE | 6 | 3.2529 | 2 | 0.1966 |
p3.US.Model.1 분석 결과, 예측 오류의 주효과가 유의하였다. 집단 내에서의 예측 오류 효과와 각 예측 오류 조건에서의 집단 간 사후분석을 수행하였다.
p3.US.m3.all <- emmeans(p3.US.Model.1, pairwise ~ cPE | Btw, type = "response")
p3.US.m3.all$contrasts %>% kable(digits=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| pe1 - pe2 | 1 | -14.444 | 4.779 | 76.235 | -3.023 | 0.009 |
| pe1 - pe3 | 1 | -8.519 | 4.779 | 76.235 | -1.783 | 0.182 |
| pe2 - pe3 | 1 | 5.926 | 4.779 | 76.235 | 1.240 | 0.433 |
| pe1 - pe2 | 2 | -4.259 | 4.779 | 76.235 | -0.891 | 0.647 |
| pe1 - pe3 | 2 | -8.889 | 4.779 | 76.235 | -1.860 | 0.157 |
| pe2 - pe3 | 2 | -4.630 | 4.779 | 76.235 | -0.969 | 0.599 |
p3.US.m4.all <- emmeans(p3.US.Model.1, pairwise ~ Btw | cPE, type = "response")
p3.US.m4.all$contrasts %>% kable(digits=3)| contrast | cPE | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| 1 - 2 | pe1 | 5.370 | 6.164 | 86.749 | 0.871 | 0.386 |
| 1 - 2 | pe2 | 15.556 | 6.164 | 86.749 | 2.524 | 0.013 |
| 1 - 2 | pe3 | 5.000 | 6.164 | 86.749 | 0.811 | 0.419 |
사후 분석 결과, 실헙 집단에서 예측 오류 조건 PE 2는 PE 1보다 유의하게 높은 US 정도를 보였다. 또한 PE 2조건에서 실험 집단은 통제집단보다 유의하게 높은 US을 보였다. 그러나 분산 분석과 마찬가지로, 집단과 예측 오류 간의 상호작용이 유의하지 않았다는 것을 고려할 필요가 있다.
앞선 분석에서는 예측 오류와 기억 갱신 간의 관계가 비단조적임을 나타내는 예측 오류 조건 간의 차이가 뚜렷하게 나타나지 않았다. 예측 오류 조건에 따른 출처 기억 반응 분석 결과, 실험 집단의 예측 오류 조건 PE 3과 PE 1, PE 2 간의 차이는 비단조적 예측과 같지 않았다. 하지만 수치적으로 볼 때, 실험 집단에서 예측 오류 조건에 따른 기억 갱신 효과의 평균은 Intrusion에서 PE 1 27.45%, PE 2 37.84%, PE 3 32.94%, Updating Score에서 PE 1 3.53, PE 2 18.82, PE 3 12.35로 비단조적인 패턴을 보였다. 이에 따라 기억 갱신의 패턴이 선형적 패턴과 비단조적 패턴 중 어느 것을 더 지지하는지 살펴보기 위하여 회귀 모형 적합을 수행하였다. 예측 오류 조건에 따른 Intrusion, Updating Score을 선형 모형 및 비선형 모형에 적합하고 두 집단 각각에서 어떤 모형이 기억 갱신 패턴에 적합한지 살펴보았다.
## Intrusion (L2>D1)
p3.Intru.long.all.fit <- p3.Intru.long.all
p3.Intru.long.all.fit$cPEn <- as.numeric(p3.Intru.long.all$cPE)
p3.Intru.long.exp.fit <- p3.Intru.long.all.fit %>% filter(Btw==1)
p3.Intru.long.con.fit <- p3.Intru.long.all.fit %>% filter(Btw==2)
## Updating Score (Intrusion - Source Confusion)
p3.US.long.all.fit <- p3.US.long.all
p3.US.long.all.fit$cPEn <- as.numeric(p3.US.long.all$cPE)
p3.US.long.exp.fit <- p3.US.long.all.fit %>% filter(Btw==1)
p3.US.long.con.fit <- p3.US.long.all.fit %>% filter(Btw==2)먼저 각 집단 참가자들의 Intrusion (L2>D1)의 비율에 대하여 참가자에 의한 무선효과를 고려한 혼합 모형을 구성하였다. 혼합 모형은 각 집단에서 예측 오류와 Intrusion (L2>D1)의 비율 간의 선형 관계를 가정한 선형 혼합 모형 lin.int.exp.model, lin.int.con.model과 비단조적 관계를 가정한 quad.int.exp.model,quad.int.con.model로 구분되었다. 이어서 각 집단에서 어떤 모형이 Intrusion (L2>D1) 비율과 예측 오류 조건 간의 관계를 더 잘 설명하는지 모형 간 비교를 수행하였다.
# experimental group
lin.int.exp.model <- lmer(Intrusion ~ cPEn + (1|SN), p3.Intru.long.exp.fit,
control = lmerControl(optCtrl = list(maxfun = 1e6)), REML=FALSE)
quad.int.exp.model <- lmer(Intrusion ~ poly(cPEn, 2) + (1|SN), p3.Intru.long.exp.fit,
control = lmerControl(optCtrl = list(maxfun = 1e6)), REML=FALSE)
# control group
lin.int.con.model <- lmer(Intrusion ~ cPEn + (1|SN), p3.Intru.long.con.fit,
control = lmerControl(optCtrl = list(maxfun = 1e6)), REML=FALSE)
quad.int.con.model <- lmer(Intrusion ~ poly(cPEn, 2) + (1|SN), p3.Intru.long.con.fit,
control = lmerControl(optCtrl = list(maxfun = 1e6)), REML=FALSE)실험 집단에서 각 모형을 분석한 결과는 아래와 같다.
anova(lin.int.exp.model, quad.int.exp.model) %>% kable(digit=3)| npar | AIC | BIC | logLik | deviance | Chisq | Df | Pr(>Chisq) | |
|---|---|---|---|---|---|---|---|---|
| lin.int.exp.model | 4 | 421.140 | 429.096 | -206.570 | 413.140 | |||
| quad.int.exp.model | 5 | 413.017 | 422.962 | -201.509 | 403.017 | 10.123 | 1 | 0.001 |
r2.int.exp <-cbind(MuMIn::r.squaredGLMM(lin.int.exp.model)[1,2], MuMIn::r.squaredGLMM(quad.int.exp.model)[1,2])
colnames(r2.int.exp)[c(1,2)] <- paste0(rep(c("Linear", "Quadratic")), colnames(r2.int.exp)[c(1,2)])
r2.int.exp %>% kable(digit = 2)| Linear | Quadratic | |
|---|---|---|
| R2c | 0.62 | 0.71 |
통제 집단에서 각 모형을 분석한 결과는 아래와 같다.
anova(quad.int.con.model, lin.int.con.model) %>% kable(digit=3)| npar | AIC | BIC | logLik | deviance | Chisq | Df | Pr(>Chisq) | |
|---|---|---|---|---|---|---|---|---|
| lin.int.con.model | 4 | 421.644 | 429.600 | -206.822 | 413.644 | |||
| quad.int.con.model | 5 | 422.988 | 432.933 | -206.494 | 412.988 | 0.656 | 1 | 0.418 |
r2.int.con <-cbind(MuMIn::r.squaredGLMM(lin.int.con.model)[1,2], MuMIn::r.squaredGLMM(quad.int.con.model)[1,2])
colnames(r2.int.con)[c(1,2)] <- paste0(rep(c("Linear", "Quadratic")), colnames(r2.int.con)[c(1,2)])
r2.int.con %>% kable(digit = 2)| Linear | Quadratic | |
|---|---|---|
| R2c | 0.34 | 0.36 |
분석 결과, 통제 집단과 달리 실험 집단에서의 Intrusion (L2>D1)과 예측 오류의 관계는 선형 모형 lin.int.exp.model 보다는 비단조적 모형 quad.int.exp.model에 더 가까운 것으로 나타났다.
참가자들의 Updating Score에 대하여 참가자에 의한 무선효과를 고려한 혼합 모형을 구성하였다. 모형은 각 집단에서 예측 오류와 Updating Score 값 간의 선형 관계를 가정한 선형 혼합 모형 lin.us.exp.model, lin.us.con.model과 비단조적 관계를 가정한 quad.us.exp.model,quad.Us.con.model로 구분되었다. 이어서 각 집단에서 어떤 모형이 Updating Score와 예측 오류 조건 간의 관계를 더 잘 설명하는지 모형 간 비교를 수행하였다.
# experimental group
lin.us.exp.model <- lmer(US ~ cPEn + (1|SN), p3.US.long.exp.fit,
control = lmerControl(optCtrl = list(maxfun = 1e6)), REML=FALSE)
quad.us.exp.model <- lmer(US ~ poly(cPEn, 2) + (1|SN), p3.US.long.exp.fit,
control = lmerControl(optCtrl = list(maxfun = 1e6)), REML=FALSE)
# control group
lin.us.con.model <- lmer(US ~ cPEn + (1|SN), p3.US.long.con.fit,
control = lmerControl(optCtrl = list(maxfun = 1e6)), REML=FALSE)
quad.us.con.model <- lmer(US ~ poly(cPEn, 2) + (1|SN), p3.US.long.con.fit,
control = lmerControl(optCtrl = list(maxfun = 1e6)), REML=FALSE)실험 집단에서 각 모형을 분석한 결과는 아래와 같다.
anova(lin.us.exp.model, quad.us.exp.model) %>% kable(digit=3)| npar | AIC | BIC | logLik | deviance | Chisq | Df | Pr(>Chisq) | |
|---|---|---|---|---|---|---|---|---|
| lin.us.exp.model | 4 | 467.678 | 475.634 | -229.839 | 459.678 | |||
| quad.us.exp.model | 5 | 462.904 | 472.849 | -226.452 | 452.904 | 6.774 | 1 | 0.009 |
r2.us.exp <-cbind(MuMIn::r.squaredGLMM(lin.us.exp.model)[1,2], MuMIn::r.squaredGLMM(quad.us.exp.model)[1,2])
colnames(r2.us.exp)[c(1,2)] <- paste0(rep(c("Linear", "Quadratic")), colnames(r2.us.exp)[c(1,2)])
r2.us.exp %>% kable(digit = 2)| Linear | Quadratic | |
|---|---|---|
| R2c | 0.42 | 0.52 |
통제 집단에서 각 모형을 분석한 결과는 아래와 같다.
anova(quad.us.con.model, lin.us.con.model) %>% kable(digit=3)| npar | AIC | BIC | logLik | deviance | Chisq | Df | Pr(>Chisq) | |
|---|---|---|---|---|---|---|---|---|
| lin.us.con.model | 4 | 469.265 | 477.221 | -230.633 | 461.265 | |||
| quad.us.con.model | 5 | 471.263 | 481.208 | -230.632 | 461.263 | 0.002 | 1 | 0.966 |
r2.us.con <-cbind(MuMIn::r.squaredGLMM(lin.us.con.model)[1,2], MuMIn::r.squaredGLMM(quad.us.con.model)[1,2])
colnames(r2.us.con)[c(1,2)] <- paste0(rep(c("Linear", "Quadratic")), colnames(r2.us.con)[c(1,2)])
r2.us.con %>% kable(digit = 2)| Linear | Quadratic | |
|---|---|---|
| R2c | 0.36 | 0.36 |
분석 결과, 통제 집단과 달리 실험 집단에서의 Updating Score와 예측 오류의 관계는 선형 모형 lin.us.exp.model 보다는 비단조적 모형 quad.us.exp.model에 더 가까운 것으로 나타났다.
출처 반응 분석 결과를 보충하기 위해 출처 반응의 확신도를 분석하였다. 출처 반응 패턴에 대한 확신도를 분석할 때, 각 출처 반응에 포함되는 시행수가 너무 작을 경우 결과를 오도할 위험성이 있다. 따라서 분석에 앞서 각 출처 반응의 시행수를 살펴보았다. 아래의 표는 각 물체 목록에서의 출처 반응에 따른 시행수를 나타낸다. 목록 1과 목록 2의 물체를 New로 반응한 시행은 목록 1에서 4.29, 목록 2에서 3.32 시행으로 매우 적어 확신도 분석에 포함하지 않았다. 추가로 목록 3에 대한 출처 반응은 본 실험의 주요 고려 대상이 아니었으므로 분석에 포함하지 않았다.
# The number of trials per condition
p3 %>% group_by(SN, cSrc, Resp) %>%
summarise(NumTrial = length(Resp)) %>%
ungroup %>%
group_by(cSrc, Resp) %>%
summarise(Avg = mean(NumTrial),
Med = median(NumTrial),
Min = min(NumTrial),
Max = max(NumTrial)) %>%
ungroup %>% kable(digit=4)| cSrc | Resp | Avg | Med | Min | Max |
|---|---|---|---|---|---|
| List_1 | Day_1 | 66.0833 | 65.5 | 49 | 83 |
| List_1 | Day_2 | 20.3611 | 20.5 | 6 | 34 |
| List_1 | New | 4.2667 | 3.5 | 1 | 12 |
| List_2 | Day_1 | 25.8889 | 25.0 | 11 | 49 |
| List_2 | Day_2 | 61.5000 | 63.5 | 38 | 77 |
| List_2 | New | 3.2414 | 3.0 | 1 | 11 |
| List_3 | Day_1 | 3.2857 | 2.0 | 1 | 12 |
| List_3 | Day_2 | 2.8750 | 1.0 | 1 | 20 |
| List_3 | New | 86.8056 | 88.0 | 69 | 90 |
이에 따라 확신도 분석은 출처 기억 검사에서 학습한 것으로 반응한 경우(목록 1과 목록 2에서 정확하게 출처 반응을 한 List 1 Corrct, List 2 Corrct와 목록 1, 목록 2에서 출처를 서로 다르게 반응한 Source Confusion (L1>D2), Intrusion (L2>D1)에 대해서만 수행하였다.
# phase 1, subject-level, long-format
p3.AsyPtt.conf.long.all <- p3 %>% filter(cSrc != "List_3", Resp != "New") %>% group_by(SN, Btw, cSrc, Resp) %>%
summarise(Conf = mean(Conf)) %>% ungroup()
p3.AsyPtt.conf.wide.all <- p3.AsyPtt.conf.long.all %>% spread(key = Resp, value = Conf)
p3.AsyPtt.conf.long.all <- gather(p3.AsyPtt.conf.wide.all, Resp, Conf, Day_1:Day_2, factor_key=TRUE)
p3.AsyPtt.conf.long.all[is.na(p3.AsyPtt.conf.long.all)] <- 0
p3.AsyPtt.conf.long.all <- arrange(p3.AsyPtt.conf.long.all, SN, cSrc, Resp, Conf)
p3.AsyPtt.conf.long.exp <- p3.AsyPtt.conf.long.all %>% filter(Btw==1)
p3.AsyPtt.conf.long.con <- p3.AsyPtt.conf.long.all %>% filter(Btw==2)
# wide format
p3.AsyPtt.conf.swide.all <- p3.AsyPtt.conf.long.all %>% spread(key = Resp, value = Conf)
p3.AsyPtt.conf.swide.exp <- p3.AsyPtt.conf.swide.all %>% filter(Btw==1)
p3.AsyPtt.conf.swide.con <- p3.AsyPtt.conf.swide.all %>% filter(Btw==2)
# summary table
p3.AsyPtt.conf.g.all <- p3.AsyPtt.conf.long.all %>% group_by(Btw, cSrc, Resp) %>%
summarise(Conf.M = mean(Conf), Conf.SD = sd(Conf)) %>% ungroup()
p3.AsyPtt.conf.g.all$Conf.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.conf.long.all, measurevar = "Conf", idvar = "SN",
betweenvars = "Btw", withinvars = c("cSrc","Resp"))$se
p3.AsyPtt.conf.g.all$Conf.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.conf.long.all, measurevar = "Conf", idvar = "SN",
betweenvars = "Btw", withinvars = c("cSrc","Resp"))$ci
p3.AsyPtt.conf.g.exp <- p3.AsyPtt.conf.g.all %>% filter(Btw==1)
p3.AsyPtt.conf.g.con <- p3.AsyPtt.conf.g.all %>% filter(Btw==2)
p3.AsyPtt.conf.g.table <- p3.AsyPtt.conf.g.all %>% unite(cSrc_Resp, cSrc:Resp, remove=TRUE) %>% rename(Src_Resp = "cSrc_Resp")
p3.AsyPtt.conf.g.table$Src_Resp[p3.AsyPtt.conf.g.table$Src_Resp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.conf.g.table$Src_Resp[p3.AsyPtt.conf.g.table$Src_Resp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.conf.g.table$Src_Resp[p3.AsyPtt.conf.g.table$Src_Resp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.conf.g.table$Src_Resp[p3.AsyPtt.conf.g.table$Src_Resp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.conf.g.table.1 <- p3.AsyPtt.conf.g.table %>% filter(Btw == 1) %>% arrange(c(1 ,3, 4, 2))
p3.AsyPtt.conf.g.table.2 <- p3.AsyPtt.conf.g.table %>% filter(Btw == 2) %>% arrange(c(1 ,3, 4, 2))
p3.AsyPtt.conf.g.table.all <- rbind(p3.AsyPtt.conf.g.table.1, p3.AsyPtt.conf.g.table.2)
p3.AsyPtt.conf.g.table.all %>% kable(digits=2)| Btw | Src_Resp | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|
| 1 | List 1 Correct | 3.32 | 0.44 | 0.07 | 0.14 |
| 1 | List 2 Correct | 3.18 | 0.46 | 0.04 | 0.08 |
| 1 | Source Confusion | 2.73 | 0.51 | 0.07 | 0.14 |
| 1 | Intrusion | 3.09 | 0.48 | 0.04 | 0.08 |
| 2 | List 1 Correct | 3.27 | 0.45 | 0.05 | 0.10 |
| 2 | List 2 Correct | 3.18 | 0.48 | 0.04 | 0.09 |
| 2 | Source Confusion | 2.76 | 0.48 | 0.06 | 0.12 |
| 2 | Intrusion | 3.06 | 0.49 | 0.05 | 0.10 |
두 물체 목록(목록 1, 목록 2)의 출처 반응에서 확신도가 어떻게 나타나는지 살펴보기 위해, 각 집단에서 물체 목록의 출처 반응 확신도 평균과 표준편차를 계산하였다. 그래프에서 A는 전체 집단의 물체 목록에 따른 출처 반응, B는 실험 집단, C는 통제집단을 나타낸다. A 그래프에서 x축은 물체 목록에 따른 출처 반응, y축은 반응 비율을 나타내며, 색은 각 집단을 나타낸다. B,C 그래프의 x축은 각 학습일에 학습한 물체 목록(첫째 날 학습 목록 1, 둘째 날 학습 목록 2, 새로운 물체 목록 3)을 나타내며, y축은 확신도 반응을 나타낸다. 각 집단에서 해당 물체 목록에 대한 출처 귀인 반응을 첫째 날 학습 Day 1, 둘째 날 학습 Day 2, 학습하지 않음 New로 구분하였다. 모든 그래프에서 빨간 점은 평균을 나타내며, 오차 막대는 95% 신뢰구간으로 표시하였다.
## plot
p3.conf.all.plot1 <- ggplot(data=p3.AsyPtt.conf.long.all, aes(x=Resp, y=Conf, fill=Btw)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.conf.g.all, aes(x = Resp, y = Conf.M, ymin = Conf.M-Conf.ci, ymax = Conf.M+Conf.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
facet_grid(.~cSrc, scales="free_x",
labeller = labeller(cSrc = c("List_1" = "List 1 (Day 1)","List_2" = "List 2 (Day 2)"))) +
scale_x_discrete(labels=c("Day 1","Day 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Source Response by Object List", y = "Confidence Rating (1-4)", fill ="Group") +
# ggtitle("Confidence Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position="top")
p3.conf.exp.plot1 <- ggplot(data=p3.AsyPtt.conf.long.exp, aes(x=cSrc, y=Conf, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=Conf, group=Resp, color = SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.conf.swide.exp,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1-.16, y=filter(p3.AsyPtt.conf.swide.exp,cSrc=="List_1")$"Day_1",
xend=1+.16, yend=filter(p3.AsyPtt.conf.swide.exp,cSrc=="List_1")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.conf.swide.exp,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2-.16, y=filter(p3.AsyPtt.conf.swide.exp,cSrc=="List_2")$"Day_1",
xend=2+.16, yend=filter(p3.AsyPtt.conf.swide.exp,cSrc=="List_2")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.AsyPtt.conf.g.exp, aes(x = cSrc, y = Conf.M, ymin = Conf.M-Conf.ci, ymax = Conf.M+Conf.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#56b4e9", "#e69f00"),
labels = c("Day 1", "Day 2")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Object List", y = "Confidence Rating (1 - 4)", fill ="Attribution") +
# ggtitle("Confidence Response (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
p3.conf.con.plot1 <- ggplot(data=p3.AsyPtt.conf.long.con, aes(x=cSrc, y=Conf, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=Conf, group=Resp, color = SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.conf.swide.con,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1-.16, y=filter(p3.AsyPtt.conf.swide.con,cSrc=="List_1")$"Day_1",
xend=1+.16, yend=filter(p3.AsyPtt.conf.swide.con,cSrc=="List_1")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.conf.swide.con,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2-.16, y=filter(p3.AsyPtt.conf.swide.con,cSrc=="List_2")$"Day_1",
xend=2+.16, yend=filter(p3.AsyPtt.conf.swide.con,cSrc=="List_2")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.AsyPtt.conf.g.con, aes(x = cSrc, y = Conf.M, ymin = Conf.M-Conf.ci, ymax = Conf.M+Conf.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#56b4e9", "#e69f00"),
labels = c("Day 1", "Day 2")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Object List", y = "Confidence Rating (1 - 4)", fill ="Attribution") +
# ggtitle("Confidence Response (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
ggpubr::ggarrange(p3.conf.all.plot1, labels = "A) All Group",
ggpubr::ggarrange(p3.conf.exp.plot1, p3.conf.con.plot1, ncol = 2, labels = c("B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16)), nrow = 2,
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 출처 반응에 따른 확신도의 차이를 분석하였다. 집단과 출처 반응을 요인으로 한 2 X 4 혼합 요인 분산분석을 수행하였다.
# List 1 & 2 Confidence of Source Response
p3.AsyPtt.conf.long.all.1 <- p3.AsyPtt.conf.long.all %>% unite(cSrc_Resp, cSrc:Resp, remove=FALSE) %>%
rename(sResp = "cSrc_Resp")
p3.AsyPtt.conf.long.all.1$sResp[p3.AsyPtt.conf.long.all.1$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.conf.long.all.1$sResp[p3.AsyPtt.conf.long.all.1$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.conf.long.all.1$sResp[p3.AsyPtt.conf.long.all.1$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.conf.long.all.1$sResp[p3.AsyPtt.conf.long.all.1$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.conf.long.all.1$sResp <- factor(p3.AsyPtt.conf.long.all.1$sResp)
p3.AsyPtt.conf.g.all.1 <- p3.AsyPtt.conf.long.all.1 %>% group_by(Btw, sResp) %>%
summarise(Conf.M = mean(Conf), Conf.SD = sd(Conf)) %>% ungroup()
p3.AsyPtt.conf.g.all.1$Conf.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.conf.long.all.1, idvar = "SN",
measurevar = "Conf", betweenvars = "Btw", withinvars = "sResp")$se
p3.AsyPtt.conf.g.all.1$Conf.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.conf.long.all.1, idvar = "SN",
measurevar = "Conf", betweenvars = "Btw", withinvars = "sResp")$ci
p3.AsyPtt.conf.g.all.1 %>% arrange(c(4, 1, 2, 3, 8, 5, 6, 7)) %>% kable(digit=2)| Btw | sResp | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|
| 1 | List 1 Correct | 3.32 | 0.44 | 0.07 | 0.15 |
| 1 | List 2 Correct | 3.18 | 0.46 | 0.04 | 0.08 |
| 1 | Source Confusion | 2.73 | 0.51 | 0.07 | 0.15 |
| 1 | Intrusion | 3.09 | 0.48 | 0.04 | 0.09 |
| 2 | List 1 Correct | 3.27 | 0.45 | 0.05 | 0.10 |
| 2 | List 2 Correct | 3.18 | 0.48 | 0.04 | 0.09 |
| 2 | Source Confusion | 2.76 | 0.48 | 0.06 | 0.13 |
| 2 | Intrusion | 3.06 | 0.49 | 0.05 | 0.10 |
p3.AsyPtt.conf.all.1.aov <- aov_ez(id = "SN", dv = "Conf", data = p3.AsyPtt.conf.long.all.1, between = "Btw", within = "sResp")
anova(p3.AsyPtt.conf.all.1.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.741 | 0.005 | 0.000 | 0.944 |
| sResp | 2.115 | 71.898 | 0.074 | 39.287 | 0.536 | 0.000 |
| Btw:sResp | 2.115 | 71.898 | 0.074 | 0.238 | 0.007 | 0.801 |
분석 결과, 출처 반응의 주효과가 유의하였다. 집단의 주효과와 집단과 출처 반응의 상호작용은 유의하지 않았다.
# source response contrast
p3.AsyPtt.conf.m1.1.all <- emmeans(p3.AsyPtt.conf.all.1.aov, pairwise ~ sResp | Btw, type = "response")
p3.AsyPtt.conf.m1.1.all$contrasts %>% kable(digit=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| Intrusion - List.1.Correct | 1 | -0.238 | 0.061 | 34 | -3.916 | 0.002 |
| Intrusion - List.2.Correct | 1 | -0.093 | 0.066 | 34 | -1.397 | 0.510 |
| Intrusion - Source.Confusion | 1 | 0.360 | 0.083 | 34 | 4.357 | 0.001 |
| List.1.Correct - List.2.Correct | 1 | 0.146 | 0.071 | 34 | 2.041 | 0.193 |
| List.1.Correct - Source.Confusion | 1 | 0.599 | 0.102 | 34 | 5.858 | 0.000 |
| List.2.Correct - Source.Confusion | 1 | 0.453 | 0.067 | 34 | 6.794 | 0.000 |
| Intrusion - List.1.Correct | 2 | -0.206 | 0.061 | 34 | -3.377 | 0.010 |
| Intrusion - List.2.Correct | 2 | -0.120 | 0.066 | 34 | -1.801 | 0.290 |
| Intrusion - Source.Confusion | 2 | 0.306 | 0.083 | 34 | 3.702 | 0.004 |
| List.1.Correct - List.2.Correct | 2 | 0.086 | 0.071 | 34 | 1.205 | 0.628 |
| List.1.Correct - Source.Confusion | 2 | 0.512 | 0.102 | 34 | 5.007 | 0.000 |
| List.2.Correct - Source.Confusion | 2 | 0.426 | 0.067 | 34 | 6.384 | 0.000 |
각 집단에서 출처 반응에 따른 사후 분석을 수행한 결과, 실험 집단에서 List 1 Correct (L1>D1)은 Source Confusion (L1>D2), Intrusion (L2>D1) 보다 유의하게 높은 확신도를 보였다. 또한 Source Confusion (L1>D2)보다는 Intrusion (L2>D1), List 2 Correct (L2>D2)이 더 높은 확신도를 보였다. List 1 Correct (L1>D1)과 List 2 Correct (L2>D2), Intrusion (L2>D1)과 List 2 Correct (L2>D2) 간의 차이는 유의하지 않았다.
통제 집단에서는 List 1 Correct (L1>D1)이 Source Confusion (L1>D2) 보다 유의하게 높은 확신도를 보였다. 또한 Source Confusion (L1>D2)보다는 Intrusion (L2>D1), List 2 Correct (L2>D2)이 더 높은 확신도를 보였다. 이 외에, List 1 Correct (L1>D1)과 Intrusion (L2>D1), List 2 Correct (L2>D2)의 차이, Intrusion (L2>D1)과 List 2 Correct (L2>D2)` 간의 차이는 유의하지 않았다.
집단, 예측 오류 조건에 따른 출처 반응 확신도를 분석하였다. 출처 반응 패턴 분석과 유사하게, 네 가지 주요 종속 변인, List 1 Correct (L1>D1), List 2 Correct (L2>D2), Source Confusion (L1>D2), Intrusion (L2>D1)에서 예측 오류 조건과 집단에 의한 확신도 차이를 살펴보았다.
먼저 각 예측 오류 조건에서 출처 반응 패턴에 따른 출처 기억 확신도를 살펴보았다.
p3.AsyPtt.conf.long.pe <- p3 %>% group_by(SN, Btw, cSrc, cPE, Resp) %>%
summarise(Conf = mean(Conf)) %>% ungroup()
p3.AsyPtt.conf.wide.pe <- p3.AsyPtt.conf.long.pe %>% spread(key = Resp, value = Conf)
p3.AsyPtt.conf.long.pe <- gather(p3.AsyPtt.conf.wide.pe, Resp, Conf, Day_1:New, factor_key=TRUE)
p3.AsyPtt.conf.long.pe[is.na(p3.AsyPtt.conf.long.pe)] <- 0
p3.AsyPtt.conf.long.pe <- arrange(p3.AsyPtt.conf.long.pe, SN, cSrc, cPE, Resp, Conf)
p3.AsyPtt.conf.long.pe <- p3.AsyPtt.conf.long.pe %>% filter(cSrc != "List_3", Resp != "New", cPE!="pe0")
p3.AsyPtt.conf.long.pe.exp <- p3.AsyPtt.conf.long.pe %>% filter(Btw==1)
p3.AsyPtt.conf.long.pe.con <- p3.AsyPtt.conf.long.pe %>% filter(Btw==2)
# wide format
p3.AsyPtt.conf.swide.pe <- p3.AsyPtt.conf.long.pe %>% spread(key = Resp, value = Conf)
p3.AsyPtt.conf.swide.pe.exp <- p3.AsyPtt.conf.swide.pe %>% filter(Btw==1)
p3.AsyPtt.conf.swide.pe.con <- p3.AsyPtt.conf.swide.pe %>% filter(Btw==2)
# summary table
p3.AsyPtt.conf.g.pe <- p3.AsyPtt.conf.long.pe %>%
group_by(Btw, cPE, cSrc, Resp) %>%
summarise(Conf.M = mean(Conf), Conf.SD = sd(Conf)) %>% ungroup()
p3.AsyPtt.conf.g.pe$Conf.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.conf.long.pe, measurevar = "Conf", idvar = "SN",
betweenvars = "Btw", withinvars = c("cPE","cSrc","Resp"))$se
p3.AsyPtt.conf.g.pe$Conf.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.conf.long.pe, measurevar = "Conf", idvar = "SN",
betweenvars = "Btw", withinvars = c("cPE","cSrc","Resp"))$ci
p3.AsyPtt.conf.g.pe.exp <- p3.AsyPtt.g.pe %>% filter(Btw==1)
p3.AsyPtt.conf.g.pe.con <- p3.AsyPtt.g.pe %>% filter(Btw==2)
p3.AsyPtt.conf.g.pe %>% kable(digits=2)| Btw | cPE | cSrc | Resp | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|---|---|
| 1 | pe1 | List_1 | Day_1 | 3.31 | 0.48 | 0.07 | 0.15 |
| 1 | pe1 | List_1 | Day_2 | 2.78 | 0.49 | 0.06 | 0.13 |
| 1 | pe1 | List_2 | Day_1 | 3.01 | 0.57 | 0.06 | 0.13 |
| 1 | pe1 | List_2 | Day_2 | 3.14 | 0.53 | 0.06 | 0.12 |
| 1 | pe2 | List_1 | Day_1 | 3.35 | 0.41 | 0.06 | 0.12 |
| 1 | pe2 | List_1 | Day_2 | 2.67 | 0.86 | 0.16 | 0.33 |
| 1 | pe2 | List_2 | Day_1 | 3.07 | 0.65 | 0.09 | 0.19 |
| 1 | pe2 | List_2 | Day_2 | 3.21 | 0.47 | 0.05 | 0.10 |
| 1 | pe3 | List_1 | Day_1 | 3.32 | 0.50 | 0.09 | 0.19 |
| 1 | pe3 | List_1 | Day_2 | 2.62 | 0.69 | 0.14 | 0.29 |
| 1 | pe3 | List_2 | Day_1 | 3.18 | 0.47 | 0.07 | 0.14 |
| 1 | pe3 | List_2 | Day_2 | 3.18 | 0.46 | 0.05 | 0.10 |
| 2 | pe1 | List_1 | Day_1 | 3.22 | 0.52 | 0.07 | 0.14 |
| 2 | pe1 | List_1 | Day_2 | 2.72 | 0.84 | 0.17 | 0.36 |
| 2 | pe1 | List_2 | Day_1 | 3.10 | 0.54 | 0.09 | 0.19 |
| 2 | pe1 | List_2 | Day_2 | 3.16 | 0.54 | 0.06 | 0.12 |
| 2 | pe2 | List_1 | Day_1 | 3.25 | 0.47 | 0.07 | 0.15 |
| 2 | pe2 | List_1 | Day_2 | 2.71 | 0.62 | 0.10 | 0.22 |
| 2 | pe2 | List_2 | Day_1 | 3.02 | 0.56 | 0.08 | 0.16 |
| 2 | pe2 | List_2 | Day_2 | 3.23 | 0.47 | 0.04 | 0.08 |
| 2 | pe3 | List_1 | Day_1 | 3.32 | 0.43 | 0.05 | 0.11 |
| 2 | pe3 | List_1 | Day_2 | 2.63 | 0.53 | 0.07 | 0.15 |
| 2 | pe3 | List_2 | Day_1 | 3.07 | 0.65 | 0.11 | 0.23 |
| 2 | pe3 | List_2 | Day_2 | 3.16 | 0.49 | 0.05 | 0.11 |
p3.AsyPtt.conf.long.pe1 <- p3.AsyPtt.conf.long.pe %>% filter(cPE == "pe1")
p3.AsyPtt.conf.g.all.pe1 <- p3.AsyPtt.conf.g.pe %>% filter(cPE == "pe1")
p3.all.plot3.conf.pe1 <- ggplot(data=p3.AsyPtt.conf.long.pe1, aes(x=cSrc, y=Conf, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.conf.g.all.pe1, aes(x = cSrc, y=Conf.M, ymin = Conf.M-Conf.ci, ymax = Conf.M+Conf.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
facet_grid(.~Btw, scales="free_x", space = "free",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Source Response by Object List", y = "Confidence Rating (1-4)", fill ="Attribution") +
# ggtitle("Source Memory Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position=c(0.8, 0.85))
p3.AsyPtt.conf.long.pe2 <- p3.AsyPtt.conf.long.pe %>% filter(cPE == "pe2")
p3.AsyPtt.conf.g.all.pe2 <- p3.AsyPtt.conf.g.pe %>% filter(cPE == "pe2")
p3.all.plot3.conf.pe2 <- ggplot(data=p3.AsyPtt.conf.long.pe2, aes(x=cSrc, y=Conf, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.conf.g.all.pe2, aes(x = cSrc, y=Conf.M, ymin = Conf.M-Conf.ci, ymax = Conf.M+Conf.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
facet_grid(.~Btw, scales="free_x", space = "free",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Source Response by Object List", y = "Confidence Rating (1-4)", fill ="Attribution") +
# ggtitle("Source Memory Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position=c(0.8, 0.85))
p3.AsyPtt.conf.long.pe3 <- p3.AsyPtt.conf.long.pe %>% filter(cPE == "pe3")
p3.AsyPtt.conf.g.all.pe3 <- p3.AsyPtt.conf.g.pe %>% filter(cPE == "pe3")
p3.all.plot3.conf.pe3 <- ggplot(data=p3.AsyPtt.conf.long.pe3, aes(x=cSrc, y=Conf, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.conf.g.all.pe3, aes(x = cSrc, y=Conf.M, ymin = Conf.M-Conf.ci, ymax = Conf.M+Conf.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
facet_grid(.~Btw, scales="free_x", space = "free",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Source Response by Object List", y = "Confidence Rating (1-4)", fill ="Attribution") +
# ggtitle("Source Memory Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position=c(0.8, 0.85))
ggpubr::ggarrange(p3.all.plot3.conf.pe1, p3.all.plot3.conf.pe2, p3.all.plot3.conf.pe3, ncol=3,
labels = c("A) PE 1 (0%)", "B) PE 2 (50%)", "C) PE 3 (100%)"),
hjust = -0.1, vjust=1, font.label = list(size = 16)) 각 예측 오류 조건에서 출처 반응에 따른 확신도의 혼합 요인 분산 분석을 수행하였다.
p3.AsyPtt.conf.long.pe.1 <- p3.AsyPtt.conf.long.pe %>% unite(cSrc_Resp, c(cSrc,Resp), remove=FALSE) %>%
rename(sResp = "cSrc_Resp")
p3.AsyPtt.conf.long.pe.1$sResp[p3.AsyPtt.conf.long.pe.1$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.conf.long.pe.1$sResp[p3.AsyPtt.conf.long.pe.1$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.conf.long.pe.1$sResp[p3.AsyPtt.conf.long.pe.1$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.conf.long.pe.1$sResp[p3.AsyPtt.conf.long.pe.1$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.conf.long.pe.1$sResp <- factor(p3.AsyPtt.conf.long.pe.1$sResp)
p3.AsyPtt.conf.long.pe1.1 <- p3.AsyPtt.conf.long.pe.1 %>% filter(cPE=="pe1")
p3.AsyPtt.conf.long.pe2.1 <- p3.AsyPtt.conf.long.pe.1 %>% filter(cPE=="pe2")
p3.AsyPtt.conf.long.pe3.1 <- p3.AsyPtt.conf.long.pe.1 %>% filter(cPE=="pe3")
p3.AsyPtt.conf.g.pe.1 <- p3.AsyPtt.conf.long.pe.1 %>% group_by(Btw, cPE, sResp) %>%
summarise(Conf.M = mean(Conf), Conf.SD = sd(Conf)) %>% ungroup()
p3.AsyPtt.conf.g.pe.1$Conf.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.conf.long.pe.1, idvar = "SN",
measurevar = "Conf", betweenvars = "Btw", withinvars = c("cPE","sResp"))$se
p3.AsyPtt.conf.g.pe.1$Conf.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.conf.long.pe.1, idvar = "SN",
measurevar = "Conf", betweenvars = "Btw", withinvars = c("cPE","sResp"))$ci
p3.AsyPtt.conf.g.pe1.1 <- p3.AsyPtt.conf.g.pe.1 %>% filter(cPE=="pe1")
p3.AsyPtt.conf.g.pe2.1 <- p3.AsyPtt.conf.g.pe.1 %>% filter(cPE=="pe2")
p3.AsyPtt.conf.g.pe3.1 <- p3.AsyPtt.conf.g.pe.1 %>% filter(cPE=="pe3")PE 1 조건에서의 분석 결과는 아래와 같다.
p3.AsyPtt.conf.g.pe1.1 %>% kable(digits=2)| Btw | cPE | sResp | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|---|
| 1 | pe1 | Intrusion | 3.01 | 0.57 | 0.06 | 0.13 |
| 1 | pe1 | List 1 Correct | 3.31 | 0.48 | 0.07 | 0.16 |
| 1 | pe1 | List 2 Correct | 3.14 | 0.53 | 0.06 | 0.12 |
| 1 | pe1 | Source Confusion | 2.78 | 0.49 | 0.06 | 0.13 |
| 2 | pe1 | Intrusion | 3.10 | 0.54 | 0.09 | 0.19 |
| 2 | pe1 | List 1 Correct | 3.22 | 0.52 | 0.07 | 0.15 |
| 2 | pe1 | List 2 Correct | 3.16 | 0.54 | 0.06 | 0.12 |
| 2 | pe1 | Source Confusion | 2.72 | 0.84 | 0.18 | 0.37 |
p3.AsyPtt.conf.pe1.1.aov <- aov_ez(id = "SN", dv = "Conf", data = p3.AsyPtt.conf.long.pe1.1, between = "Btw", within = "sResp")
anova(p3.AsyPtt.conf.pe1.1.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.837 | 0.006 | 0.000 | 0.937 |
| sResp | 1.912 | 65.008 | 0.246 | 11.385 | 0.251 | 0.000 |
| Btw:sResp | 1.912 | 65.008 | 0.246 | 0.387 | 0.011 | 0.671 |
분석 결과, 출처 반응의 주효과가 유의하였다.
p3.AsyPtt.conf.pe1.m1 <- emmeans(p3.AsyPtt.conf.pe1.1.aov, pairwise ~ sResp | Btw, type = "response")
p3.AsyPtt.conf.pe1.m1$contrasts %>% kable(digit=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| Intrusion - List.1.Correct | 1 | -0.302 | 0.099 | 34 | -3.048 | 0.022 |
| Intrusion - List.2.Correct | 1 | -0.128 | 0.097 | 34 | -1.320 | 0.557 |
| Intrusion - Source.Confusion | 1 | 0.233 | 0.175 | 34 | 1.332 | 0.549 |
| List.1.Correct - List.2.Correct | 1 | 0.173 | 0.086 | 34 | 2.026 | 0.199 |
| List.1.Correct - Source.Confusion | 1 | 0.534 | 0.166 | 34 | 3.228 | 0.014 |
| List.2.Correct - Source.Confusion | 1 | 0.361 | 0.142 | 34 | 2.540 | 0.071 |
| Intrusion - List.1.Correct | 2 | -0.122 | 0.099 | 34 | -1.228 | 0.614 |
| Intrusion - List.2.Correct | 2 | -0.063 | 0.097 | 34 | -0.644 | 0.917 |
| Intrusion - Source.Confusion | 2 | 0.384 | 0.175 | 34 | 2.199 | 0.144 |
| List.1.Correct - List.2.Correct | 2 | 0.059 | 0.086 | 34 | 0.688 | 0.901 |
| List.1.Correct - Source.Confusion | 2 | 0.505 | 0.166 | 34 | 3.053 | 0.022 |
| List.2.Correct - Source.Confusion | 2 | 0.446 | 0.142 | 34 | 3.143 | 0.017 |
실험 집단과 통제 집단 모두에서, Source Confusion의 확신도는 List 1 Correct, List 2 Correct보다 유의하게 낮았다. 추가로, 통제 집단에서 Intrusion과 Source Confusion 간의 확신도 차이는 유의하였다.
PE 2 조건에서의 분석 결과는 아래와 같다.
p3.AsyPtt.conf.g.pe2.1 %>% kable(digits=2)| Btw | cPE | sResp | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|---|
| 1 | pe2 | Intrusion | 3.07 | 0.65 | 0.09 | 0.19 |
| 1 | pe2 | List 1 Correct | 3.35 | 0.41 | 0.06 | 0.12 |
| 1 | pe2 | List 2 Correct | 3.21 | 0.47 | 0.05 | 0.10 |
| 1 | pe2 | Source Confusion | 2.67 | 0.86 | 0.16 | 0.34 |
| 2 | pe2 | Intrusion | 3.02 | 0.56 | 0.08 | 0.16 |
| 2 | pe2 | List 1 Correct | 3.25 | 0.47 | 0.07 | 0.15 |
| 2 | pe2 | List 2 Correct | 3.23 | 0.47 | 0.04 | 0.09 |
| 2 | pe2 | Source Confusion | 2.71 | 0.62 | 0.11 | 0.22 |
p3.AsyPtt.conf.pe2.1.aov <- aov_ez(id = "SN", dv = "Conf", data = p3.AsyPtt.conf.long.pe2.1, between = "Btw", within = "sResp")
anova(p3.AsyPtt.conf.pe2.1.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.899 | 0.023 | 0.001 | 0.881 |
| sResp | 1.956 | 66.521 | 0.230 | 17.854 | 0.344 | 0.000 |
| Btw:sResp | 1.956 | 66.521 | 0.230 | 0.218 | 0.006 | 0.800 |
분석 결과, 출처 반응의 주효과가 유의하였다.
p3.AsyPtt.conf.pe2.m1 <- emmeans(p3.AsyPtt.conf.pe2.1.aov, pairwise ~ sResp | Btw, type = "response")
p3.AsyPtt.conf.pe2.m1$contrasts %>% kable(digit=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| Intrusion - List.1.Correct | 1 | -0.273 | 0.097 | 34 | -2.816 | 0.038 |
| Intrusion - List.2.Correct | 1 | -0.139 | 0.104 | 34 | -1.340 | 0.545 |
| Intrusion - Source.Confusion | 1 | 0.407 | 0.157 | 34 | 2.599 | 0.063 |
| List.1.Correct - List.2.Correct | 1 | 0.133 | 0.079 | 34 | 1.693 | 0.343 |
| List.1.Correct - Source.Confusion | 1 | 0.680 | 0.169 | 34 | 4.017 | 0.002 |
| List.2.Correct - Source.Confusion | 1 | 0.546 | 0.143 | 34 | 3.831 | 0.003 |
| Intrusion - List.1.Correct | 2 | -0.237 | 0.097 | 34 | -2.447 | 0.087 |
| Intrusion - List.2.Correct | 2 | -0.207 | 0.104 | 34 | -1.992 | 0.211 |
| Intrusion - Source.Confusion | 2 | 0.312 | 0.157 | 34 | 1.991 | 0.211 |
| List.1.Correct - List.2.Correct | 2 | 0.030 | 0.079 | 34 | 0.377 | 0.981 |
| List.1.Correct - Source.Confusion | 2 | 0.549 | 0.169 | 34 | 3.243 | 0.013 |
| List.2.Correct - Source.Confusion | 2 | 0.519 | 0.143 | 34 | 3.639 | 0.005 |
실험 집단과 통제 집단 모두에서, Source Confusion의 확신도는 List 1 Correct, List 2 Correct보다 유의하게 낮았다. 실험 집단에서 Intrusion과 Source Confusion 간의 확신도 차이는 유의하였다.
PE 2 조건에서의 분석 결과는 아래와 같다.
p3.AsyPtt.conf.g.pe3.1 %>% kable(digits=2)| Btw | cPE | sResp | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|---|
| 1 | pe3 | Intrusion | 3.18 | 0.47 | 0.07 | 0.14 |
| 1 | pe3 | List 1 Correct | 3.32 | 0.50 | 0.09 | 0.19 |
| 1 | pe3 | List 2 Correct | 3.18 | 0.46 | 0.05 | 0.11 |
| 1 | pe3 | Source Confusion | 2.62 | 0.69 | 0.14 | 0.29 |
| 2 | pe3 | Intrusion | 3.07 | 0.65 | 0.11 | 0.24 |
| 2 | pe3 | List 1 Correct | 3.32 | 0.43 | 0.05 | 0.11 |
| 2 | pe3 | List 2 Correct | 3.16 | 0.49 | 0.05 | 0.11 |
| 2 | pe3 | Source Confusion | 2.63 | 0.53 | 0.07 | 0.15 |
p3.AsyPtt.conf.pe3.1.aov <- aov_ez(id = "SN", dv = "Conf", data = p3.AsyPtt.conf.long.pe3.1, between = "Btw", within = "sResp")
anova(p3.AsyPtt.conf.pe3.1.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.729 | 0.046 | 0.001 | 0.831 |
| sResp | 2.327 | 79.133 | 0.180 | 23.358 | 0.407 | 0.000 |
| Btw:sResp | 2.327 | 79.133 | 0.180 | 0.158 | 0.005 | 0.883 |
분석 결과, 출처 반응의 주효과가 유의하였다.
p3.AsyPtt.conf.pe3.m1 <- emmeans(p3.AsyPtt.conf.pe3.1.aov, pairwise ~ sResp | Btw, type = "response")
p3.AsyPtt.conf.pe3.m1$contrasts %>% kable(digit=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| Intrusion - List.1.Correct | 1 | -0.142 | 0.116 | 34 | -1.231 | 0.612 |
| Intrusion - List.2.Correct | 1 | -0.008 | 0.103 | 34 | -0.081 | 1.000 |
| Intrusion - Source.Confusion | 1 | 0.551 | 0.152 | 34 | 3.637 | 0.005 |
| List.1.Correct - List.2.Correct | 1 | 0.134 | 0.099 | 34 | 1.349 | 0.539 |
| List.1.Correct - Source.Confusion | 1 | 0.694 | 0.154 | 34 | 4.508 | 0.000 |
| List.2.Correct - Source.Confusion | 1 | 0.560 | 0.113 | 34 | 4.961 | 0.000 |
| Intrusion - List.1.Correct | 2 | -0.247 | 0.116 | 34 | -2.132 | 0.164 |
| Intrusion - List.2.Correct | 2 | -0.087 | 0.103 | 34 | -0.843 | 0.834 |
| Intrusion - Source.Confusion | 2 | 0.446 | 0.152 | 34 | 2.943 | 0.028 |
| List.1.Correct - List.2.Correct | 2 | 0.160 | 0.099 | 34 | 1.605 | 0.389 |
| List.1.Correct - Source.Confusion | 2 | 0.693 | 0.154 | 34 | 4.501 | 0.000 |
| List.2.Correct - Source.Confusion | 2 | 0.533 | 0.113 | 34 | 4.726 | 0.000 |
실험 집단과 통제 집단 모두에서, Source Confusion의 확신도는 List 1 Correct, List 2 Correct보다 유의하게 낮았다. 또한 Intrusion과 Source Confusion 간의 확신도 차이는 유의하였다.
List 1 Correct (L1>D1) 에서 집단과 예측 오류 조건에 따른 확신도 차이가 있는지 확인하기 위해 조건에 대한 정확도 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 리본은 95% 신뢰구간을 표시한다.
## List 1 Correct Response
# long format
p3.Acc.conf.long.all.1 <- p3 %>% filter(cSrc == "List_1", cPE != "pe0", Correct == 1) %>% group_by(SN, Btw, cPE) %>%
summarise(Conf = mean(Conf)) %>% ungroup()
p3.Acc.conf.long.exp.1<- p3.Acc.conf.long.all.1 %>% filter(Btw==1)
p3.Acc.conf.long.con.1 <- p3.Acc.conf.long.all.1 %>% filter(Btw==2)
# wide format
p3.Acc.conf.swide.all.1 <- p3.Acc.conf.long.all.1 %>% spread(key = cPE, value = Conf)
p3.Acc.conf.swide.exp.1 <- p3.Acc.conf.swide.all.1 %>% filter(Btw==1)
p3.Acc.conf.swide.con.1 <- p3.Acc.conf.swide.all.1 %>% filter(Btw==2)
# summary
p3.Acc.conf.g.all.1 <- p3.Acc.conf.long.all.1 %>% group_by(Btw, cPE) %>%
summarise(Conf.M = mean(Conf), Conf.SD = sd(Conf)) %>% ungroup()
p3.Acc.conf.g.all.1$Conf.se <- Rmisc::summarySEwithin(data = p3.Acc.conf.long.all.1, measurevar = "Conf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.conf.g.all.1$Conf.ci <- Rmisc::summarySEwithin(data = p3.Acc.conf.long.all.1, measurevar = "Conf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.conf.g.exp.1 <- p3.Acc.conf.g.all.1 %>% filter(Btw==1)
p3.Acc.conf.g.con.1 <- p3.Acc.conf.g.all.1 %>% filter(Btw==2)
p3.Acc.conf.g.all.1 %>% kable(digit=2)| Btw | cPE | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 3.31 | 0.48 | 0.03 | 0.07 |
| 1 | pe2 | 3.35 | 0.41 | 0.05 | 0.10 |
| 1 | pe3 | 3.32 | 0.50 | 0.05 | 0.10 |
| 2 | pe1 | 3.22 | 0.52 | 0.04 | 0.08 |
| 2 | pe2 | 3.25 | 0.47 | 0.04 | 0.08 |
| 2 | pe3 | 3.32 | 0.43 | 0.04 | 0.09 |
## plot
p3.conf.all.plot2.2.1 <- ggplot(p3.Acc.conf.g.all.1, mapping=aes(x=cPE, y=Conf.M, group=Btw)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.conf.g.all.1, mapping = aes(x=cPE, y=Conf.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.conf.exp.plot2.2.1 <- ggplot(p3.Acc.conf.g.exp.1, mapping=aes(x=cPE, y=Conf.M, group=1)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.conf.long.exp.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Conf, group=SN, color=SN)) +
geom_point(p3.Acc.conf.long.exp.1, mapping = aes(x=cPE, y=Conf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.conf.con.plot2.2.1 <- ggplot(p3.Acc.conf.g.con.1, mapping=aes(x=cPE, y=Conf.M, group=1)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.conf.long.con.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Conf, group=SN, color=SN)) +
geom_point(p3.Acc.conf.long.con.1, mapping = aes(x=cPE, y=Conf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.conf.all.plot2.2.1, p3.conf.exp.plot2.2.1, p3.conf.con.plot2.2.1, ncol=3,
labels = c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))확신도에 대하여 참가자 간 변인인 집단, 참가자 내 변인인 예측 오류 조건을 요인으로 하는 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.all.aov.conf.1 <- aov_ez(id = "SN", dv = "Conf", data = p3.Acc.conf.long.all.1, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.conf.1, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.588 | 0.171 | 0.005 | 0.682 |
| cPE | 1.889 | 64.229 | 0.038 | 0.718 | 0.021 | 0.484 |
| Btw:cPE | 1.889 | 64.229 | 0.038 | 0.742 | 0.021 | 0.473 |
분석 결과, 모든 효과가 유의하지 않았다.
Source Confusion (L1>D2)에서 집단, 예측 오류 조건에 따른 확신도 평균과 표준편차를 계산하였다. 24번, 25번 참가자는 일부 예측 오류 조건에서 Source Confusion 반응이 없었기 때문에 확신도 반응도 없었다. 따라서 결과가 왜곡되는 것을 방지하기 위해 분석에서 제외하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 1 Source Confusion
# long format
p3.Err.conf.long.all <- p3 %>% filter(cSrc == "List_1", cPE != "pe0", Err == 1, SN != 24, SN != 25) %>% group_by(SN, Btw, cPE) %>%
summarise(Conf = mean(Conf)) %>% ungroup()
p3.Err.conf.long.exp <- p3.Err.conf.long.all %>% filter(Btw==1)
p3.Err.conf.long.con <- p3.Err.conf.long.all %>% filter(Btw==2)
# wide format
p3.Err.conf.swide.all <- p3.Err.conf.long.all %>% spread(key = cPE, value = Conf)
p3.Err.conf.swide.exp <- p3.Err.conf.swide.all %>% filter(Btw==1)
p3.Err.conf.swide.con <- p3.Err.conf.swide.all %>% filter(Btw==2)
# summary
p3.Err.conf.g.all <- p3.Err.conf.long.all %>% group_by(Btw, cPE) %>%
summarise(Conf.M = mean(Conf), Conf.SD = sd(Conf)) %>% ungroup()
p3.Err.conf.g.all$Conf.se <- Rmisc::summarySEwithin(data = p3.Err.conf.long.all, measurevar = "Conf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Err.conf.g.all$Conf.ci <- Rmisc::summarySEwithin(data = p3.Err.conf.long.all, measurevar = "Conf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Err.conf.g.exp <- p3.Err.conf.g.all %>% filter(Btw==1)
p3.Err.conf.g.con <- p3.Err.conf.g.all %>% filter(Btw==2)
p3.Err.conf.g.all %>% kable(digit=2)| Btw | cPE | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 2.79 | 0.50 | 0.09 | 0.19 |
| 1 | pe2 | 2.82 | 0.56 | 0.07 | 0.15 |
| 1 | pe3 | 2.63 | 0.72 | 0.11 | 0.23 |
| 2 | pe1 | 2.87 | 0.51 | 0.08 | 0.16 |
| 2 | pe2 | 2.69 | 0.63 | 0.07 | 0.15 |
| 2 | pe3 | 2.62 | 0.55 | 0.07 | 0.14 |
## plot
p3.conf.all.plot2.3 <- ggplot(p3.Err.conf.g.all, mapping=aes(x=cPE, y=Conf.M, group=Btw)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Err.conf.g.all, mapping = aes(x=cPE, y=Conf.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)", fill="Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.conf.exp.plot2.3 <- ggplot(p3.Err.conf.g.exp, mapping=aes(x=cPE, y=Conf.M, group=1)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Err.conf.long.exp, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Conf, group=SN, color=SN)) +
geom_point(p3.Err.conf.long.exp, mapping = aes(x=cPE, y=Conf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Source Confusions (L1>D2; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.conf.con.plot2.3 <- ggplot(p3.Err.conf.g.con, mapping=aes(x=cPE, y=Conf.M, group=1)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Err.conf.long.con, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Conf, group=SN, color=SN)) +
geom_point(p3.Err.conf.long.con, mapping = aes(x=cPE, y=Conf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Source Confusions (L1>D2; Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.conf.all.plot2.3, p3.conf.exp.plot2.3, p3.conf.con.plot2.3, ncol=3,
labels=c("A) All Group","B) Experimental","C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Err.all.aov.conf <- aov_ez(id = "SN", dv = "Conf", data = p3.Err.conf.long.all, between = "Btw", within = "cPE")
anova(p3.Err.all.aov.conf, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 32.000 | 0.765 | 0.014 | 0.000 | 0.907 |
| cPE | 1.853 | 59.294 | 0.135 | 2.941 | 0.084 | 0.064 |
| Btw:cPE | 1.853 | 59.294 | 0.135 | 0.822 | 0.025 | 0.436 |
분석 결과, 모든 효과가 유의하지 않았다.
List 2 Correct (L2>D2)에서 집단과 예측 오류에 따른 확신도 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 2 Correct Source Memory
# long format
p3.Acc.conf.long.all.2 <- p3 %>% filter(cSrc == "List_2", cPE != "pe0", Correct == 1) %>% group_by(SN, Btw, cPE) %>%
summarise(Conf = mean(Conf)) %>% ungroup()
p3.Acc.conf.long.exp.2 <- p3.Acc.conf.long.all.2 %>% filter(Btw==1)
p3.Acc.conf.long.con.2 <- p3.Acc.conf.long.all.2 %>% filter(Btw==2)
# wide format
p3.Acc.conf.swide.all.2 <- p3.Acc.conf.long.all.2 %>% spread(key = cPE, value = Conf)
p3.Acc.conf.swide.exp.2 <- p3.Acc.conf.swide.all.2 %>% filter(Btw==1)
p3.Acc.conf.swide.con.2 <- p3.Acc.conf.swide.all.2 %>% filter(Btw==2)
# summary
p3.Acc.conf.g.all.2 <- p3.Acc.conf.long.all.2 %>% group_by(Btw, cPE) %>%
summarise(Conf.M = mean(Conf), Conf.SD = sd(Conf)) %>% ungroup()
p3.Acc.conf.g.all.2$Conf.se <- Rmisc::summarySEwithin(data = p3.Acc.conf.long.all.2, measurevar = "Conf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.conf.g.all.2$Conf.ci <- Rmisc::summarySEwithin(data = p3.Acc.conf.long.all.2, measurevar = "Conf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.conf.g.exp.2 <- p3.Acc.conf.g.all.2 %>% filter(Btw==1)
p3.Acc.conf.g.con.2 <- p3.Acc.conf.g.all.2 %>% filter(Btw==2)
p3.Acc.conf.g.all.2 %>% kable(digit=2)| Btw | cPE | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 3.14 | 0.53 | 0.04 | 0.09 |
| 1 | pe2 | 3.21 | 0.47 | 0.04 | 0.09 |
| 1 | pe3 | 3.18 | 0.46 | 0.05 | 0.10 |
| 2 | pe1 | 3.16 | 0.54 | 0.04 | 0.09 |
| 2 | pe2 | 3.22 | 0.47 | 0.04 | 0.08 |
| 2 | pe3 | 3.16 | 0.49 | 0.04 | 0.09 |
## plot
p3.conf.all.plot2.2.2 <- ggplot(p3.Acc.conf.g.all.2, mapping=aes(x=cPE, y=Conf.M, group=Btw)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.conf.g.all.2, mapping = aes(x=cPE, y=Conf.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)", fill="Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.conf.exp.plot2.2.2 <- ggplot(p3.Acc.conf.g.exp.2, mapping=aes(x=cPE, y=Conf.M, group=1)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.conf.long.exp.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Conf, group=SN, color=SN)) +
geom_point(p3.Acc.conf.long.exp.2, mapping = aes(x=cPE, y=Conf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 2 Correct SM (L2>D2; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.conf.con.plot2.2.2 <- ggplot(p3.Acc.conf.g.con.2, mapping=aes(x=cPE, y=Conf.M, group=1)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.conf.long.con.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Conf, group=SN, color=SN)) +
geom_point(p3.Acc.conf.long.con.2, mapping = aes(x=cPE, y=Conf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 2 Correct SM (L2>D2; Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.conf.all.plot2.2.2, p3.conf.exp.plot2.2.2, p3.conf.con.plot2.2.2, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건에 따른 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.all.aov.conf.2 <- aov_ez(id = "SN", dv = "Conf", data = p3.Acc.conf.long.all.2, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.conf.2, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.656 | 0.000 | 0.000 | 0.986 |
| cPE | 1.959 | 66.608 | 0.038 | 1.113 | 0.032 | 0.334 |
| Btw:cPE | 1.959 | 66.608 | 0.038 | 0.137 | 0.004 | 0.868 |
분석 결과, 모든 효과가 유의하지 않았다.
Intrusion (L2>D1) 확신도의 집단과 예측 오류 조건에 따른 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 2 Intrusion
# long format
p3.Intru.conf.long.all <- p3 %>% filter(cSrc == "List_2", cPE != "pe0", Int == 1) %>% group_by(SN, Btw, cPE) %>%
summarise(Conf = mean(Conf)) %>% ungroup()
p3.Intru.conf.long.exp <- p3.Intru.conf.long.all %>% filter(Btw==1)
p3.Intru.conf.long.con <- p3.Intru.conf.long.all %>% filter(Btw==2)
# wide format
p3.Intru.conf.swide.all <- p3.Intru.conf.long.all %>% spread(key = cPE, value = Conf)
p3.Intru.conf.swide.exp <- p3.Intru.conf.swide.all %>% filter(Btw==1)
p3.Intru.conf.swide.con <- p3.Intru.conf.swide.all %>% filter(Btw==2)
# summary
p3.Intru.conf.g.all <- p3.Intru.conf.long.all %>% group_by(Btw, cPE) %>%
summarise(Conf.M = mean(Conf), Conf.SD = sd(Conf)) %>% ungroup()
p3.Intru.conf.g.all$Conf.se <- Rmisc::summarySEwithin(data = p3.Intru.conf.long.all, measurevar = "Conf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Intru.conf.g.all$Conf.ci <- Rmisc::summarySEwithin(data = p3.Intru.conf.long.all, measurevar = "Conf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Intru.conf.g.exp <- p3.Intru.conf.g.all %>% filter(Btw==1)
p3.Intru.conf.g.con <- p3.Intru.conf.g.all %>% filter(Btw==2)
p3.Intru.conf.g.all %>% kable(digit=2)| Btw | cPE | Conf.M | Conf.SD | Conf.se | Conf.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 3.01 | 0.57 | 0.05 | 0.10 |
| 1 | pe2 | 3.07 | 0.65 | 0.09 | 0.18 |
| 1 | pe3 | 3.18 | 0.47 | 0.07 | 0.16 |
| 2 | pe1 | 3.09 | 0.55 | 0.08 | 0.17 |
| 2 | pe2 | 3.02 | 0.56 | 0.09 | 0.18 |
| 2 | pe3 | 3.07 | 0.65 | 0.11 | 0.23 |
## plot
p3.conf.all.plot2.1 <- ggplot(p3.Intru.conf.g.all, mapping=aes(x=cPE, y=Conf.M, group=Btw)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Intru.conf.g.exp, mapping = aes(x=cPE, y=Conf.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)", fill="Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.conf.exp.plot2.1 <- ggplot(p3.Intru.conf.g.exp, mapping=aes(x=cPE, y=Conf.M, group=1)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Intru.conf.long.exp, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Conf, group=SN, color=SN)) +
geom_point(p3.Intru.conf.long.exp, mapping = aes(x=cPE, y=Conf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Intrusion (L2>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.conf.con.plot2.1 <- ggplot(p3.Intru.conf.g.con, mapping=aes(x=cPE, y=Conf.M, group=1)) +
geom_ribbon(aes(ymin=Conf.M-Conf.ci, ymax=Conf.M+Conf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=Conf.M, ymax=Conf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Intru.conf.long.con, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=Conf, group=SN, color=SN)) +
geom_point(p3.Intru.conf.long.con, mapping = aes(x=cPE, y=Conf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Confidence Rating (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("Intrusion (L2>D1; Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.conf.all.plot2.1, p3.conf.exp.plot2.1, p3.conf.con.plot2.1, ncol=3,
labels=c("A) All Group","B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 한 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Intru.all.aov.conf <- aov_ez(id = "SN", dv = "Conf", data = p3.Intru.conf.long.all, between = "Btw", within = "cPE")
anova(p3.Intru.all.aov.conf, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.732 | 0.026 | 0.001 | 0.872 |
| cPE | 1.754 | 59.621 | 0.158 | 0.515 | 0.015 | 0.576 |
| Btw:cPE | 1.754 | 59.621 | 0.158 | 0.570 | 0.016 | 0.546 |
분석 결과, 모든 효과가 유의하지 않았다.
출처 기억 반응에서는 예측 오류를 수반한 재활성화에 의해 기억 갱신 효과가 나타난다는 출처 반응 및 확신도 패턴을 확인할 수 있었다. 그러나 이러한 결과가 기억의 손상에 의한 것이 아닌 갱신에 의한 것이라는 점을 확인하기 위해서는 첫 날과 둘째 날에 학습한 연합 기억이 어느 정도 유지되어 있어야 한다. 또한 본 실험에서 유도한 재공고화, 예측 오류를 수반한 재활성화가 출처 기억 뿐만 아니라 연합 기억에도 영향을 준다면, 각 조건에 따라 일정한 패턴을 확인할 수 있을 것이다. 따라서 집단, 출처 반응, 예측 오류 조건에서의 연합 기억 정확도를 분석하였다. 기억 검사 과제에서 New로 출처 반응을 한 경우에는 연합 기억 검사를 생략하였으므로, 목록 3의 연합 기억은 분석할 수 없었다.
첫째 날과 둘째 날의 연합 기억 학습 수행을 비교한 분석에서는 둘째 날 연합 기억 학습이 첫째 날 연합 기억 학습보다 우수하게 나타났었다. 이러한 결과 패턴이 마지막 날의 연합 기억 검사에서도 유사하게 나타나는지 확인하였다. 또한 두 집단 간의 연합 기억 수행의 차이가 있는지도 확인하였다.
# long format
p3.day.Asc.long.all <- p3 %>% filter(cSrc != "List_3", Resp != "New") %>% group_by(SN, Btw, cSrc) %>%
summarise(aCorr = mean(aCorr)*100) %>% ungroup
p3.day.Asc.long.exp <- p3.day.Asc.long.all %>% filter(Btw==1)
p3.day.Asc.long.con <- p3.day.Asc.long.all %>% filter(Btw==2)
# wide format
p3.day.Asc.swide.all <- p3.day.Asc.long.all %>% spread(key = cSrc, value = aCorr)
p3.day.Asc.swide.exp <- p3.day.Asc.swide.all %>% filter(Btw==1)
p3.day.Asc.swide.con <- p3.day.Asc.swide.all %>% filter(Btw==2)
# summary
p3.day.Asc.g.all <- p3.day.Asc.long.all %>% group_by(Btw, cSrc) %>%
summarise(aCorr.M = mean(aCorr), aCorr.SD = sd(aCorr)) %>% ungroup()
p3.day.Asc.g.all$aCorr.se <- Rmisc::summarySEwithin(data = p3.day.Asc.long.all, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cSrc")$se
p3.day.Asc.g.all$aCorr.ci <- Rmisc::summarySEwithin(data = p3.day.Asc.long.all, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cSrc")$ci
p3.day.Asc.g.exp <- p3.day.Asc.g.all %>% filter(Btw==1)
p3.day.Asc.g.con <- p3.day.Asc.g.all %>% filter(Btw==2)
p3.day.Asc.g.all %>% kable(digits=2)| Btw | cSrc | aCorr.M | aCorr.SD | aCorr.se | aCorr.ci |
|---|---|---|---|---|---|
| 1 | List_1 | 86.16 | 8.17 | 0.85 | 1.80 |
| 1 | List_2 | 89.91 | 7.88 | 0.85 | 1.80 |
| 2 | List_1 | 85.21 | 7.87 | 0.91 | 1.93 |
| 2 | List_2 | 87.49 | 7.85 | 0.91 | 1.93 |
## plot
p3.day.Asc.all.plot.1 <- ggplot(data=p3.day.Asc.long.all, aes(x=Btw, y=aCorr, fill=cSrc)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=Btw, y=aCorr, group=cSrc, color=SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.day.Asc.swide.all,Btw==1), inherit.aes = FALSE,
aes(x=1-.16, y=filter(p3.day.Asc.swide.all,Btw==1)$"List_1",
xend=1+.16, yend=filter(p3.day.Asc.swide.all,Btw==1)$"List_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.day.Asc.swide.all,Btw==2), inherit.aes = FALSE,
aes(x=2-.16, y=filter(p3.day.Asc.swide.all,Btw==2)$"List_1",
xend=2+.16, yend=filter(p3.day.Asc.swide.all,Btw==2)$"List_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.day.Asc.g.all, aes(x = Btw, y = aCorr.M, ymin = aCorr.M-aCorr.ci, ymax = aCorr.M+aCorr.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("List 1", "List 2")) +
scale_x_discrete(labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(25, 100), clip = "on") +
labs(x = "Group", y = "Accuracy (%)", fill ="Object List") +
# ggtitle("Association Memory by Group") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
p3.day.Asc.all.plot.2 <- ggplot(data=p3.day.Asc.long.all, aes(x=cSrc, y=aCorr, fill=Btw)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=aCorr, group=Btw, color=SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_pointrange(data=p3.day.Asc.g.all, aes(x = cSrc, y = aCorr.M, ymin = aCorr.M-aCorr.ci, ymax = aCorr.M+aCorr.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Experimental", "Control")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(25, 100), clip = "on") +
labs(x = "Object List", y = "Accuracy (%)", fill ="Group") +
# ggtitle("Association Memory by Object List") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
ggpubr::ggarrange(p3.day.Asc.all.plot.1, p3.day.Asc.all.plot.2, ncol = 2,
labels=c("A) Association Memory by Group","B) Association Memory by List"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 물체 목록을 요인으로 하는 2 X 2 혼합 요인 분산분석을 수행하였다.
p3.day.Asc.all.aov <- aov_ez(id = "SN", dv = "aCorr", data = p3.day.Asc.long.all, between = "Btw", within = c("cSrc"))
anova(p3.day.Asc.all.aov, es = "pes") %>% kable(digits=3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 107.497 | 0.477 | 0.014 | 0.494 |
| cSrc | 1 | 34 | 18.782 | 8.682 | 0.203 | 0.006 |
| Btw:cSrc | 1 | 34 | 18.782 | 0.513 | 0.015 | 0.479 |
분석 결과, 물체 목록의 주효과는 유의하였다.
p3.day.Asc.m1.all <- emmeans(p3.day.Asc.all.aov, pairwise ~ cSrc | Btw, type = "response")
p3.day.Asc.m1.all$contrasts %>% kable(digits=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| List_1 - List_2 | 1 | -3.742 | 1.445 | 34 | -2.590 | 0.014 |
| List_1 - List_2 | 2 | -2.278 | 1.445 | 34 | -1.577 | 0.124 |
각 집단 별로 물체 목록에 대한 사후 분석을 수행한 결과, 실험 집단에서 목록 2가 목록 1보다 우수한 연합 기억 수행을 보였다.
분산분석 결과를 보충하기 위해 집단과 물체 목록에서의 연합 기억 정확도 차이에 대한 일반화 선형 혼합 모형(일반화 선형 혼합 모형; GLMM)을 검증하였다. 집단과 물체 목록의 고정 효과(fixed effect)와 참가자와 자극 항목에 대한 무선 효과(random effect)를 포함한 모형 p3.12.Acc.exp.Model.1을 구성하였다.
p3.aCorr <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.aCorr <- p3.aCorr %>% filter(cSrc != 3, Resp != 3)
p3.aCorr$SN = factor(p3.aCorr$SN); p3.aCorr$Btw = factor(p3.aCorr$Btw)
p3.aCorr$cSrc = factor(p3.aCorr$cSrc, labels=c("List_1", "List_2"))
p3.aCorr$Resp <- factor(p3.aCorr$Resp, levels=c(1,2), labels=c("Day_1", "Day_2"))(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.12.Acc.all.Model.1 <- afex::mixed(aCorr ~ Btw*cSrc + (1|SN) + (1|IMname),
p3.aCorr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6), optimizer = "bobyqa"))
save(p3.12.Acc.all.Model.1, file="memudet_day3_12asc_Acc_afex.Rdata")
stopCluster(cl)anova(p3.12.Acc.all.Model.1) %>% kable(digits=3)분석 결과, 물체 목록의 주효과는 유의하였다.
p3.day.Asc.m3.all <- emmeans(p3.12.Acc.all.Model.1, pairwise ~ cSrc | Btw, type = "response")
p3.day.Asc.m3.all$contrasts %>% kable(digits=4)각 집단에서 물체 목록에 대한 사후 분석을 수행한 결과, 실험 집단에서 목록 1의 연합 기억보다 목록 2의 연합 기억이 유의하게 우수하였다. 통제 집단에서도 유사한 경향이 나타났으나, 통계적으로 유의하지 않았다.
물체 목록(목록 1, 목록 2)에서 집단과 출처 반응에 따라 연합 기억이 어떻게 나타나는지 살펴보기 위해, 각 조건에 대한 연합 기억 정확도 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B, C는 각 집단을 나타내며, 빨간 점은 평균, 오차 막대는 95% 신뢰구간을 표시한다.
# long format
p3.AsyPtt.Asc.long.all <- p3 %>% filter(cSrc != "List_3", Resp != "New") %>% group_by(SN, Btw, cSrc, Resp) %>%
summarise(aCorr = mean(aCorr)*100) %>% ungroup()
p3.AsyPtt.Asc.wide.all <- p3.AsyPtt.Asc.long.all %>% spread(key = Resp, value = aCorr)
p3.AsyPtt.Asc.long.all <- gather(p3.AsyPtt.Asc.wide.all, Resp, aCorr, Day_1:Day_2, factor_key=TRUE)
p3.AsyPtt.Asc.long.all[is.na(p3.AsyPtt.Asc.long.all)] <- 0
p3.AsyPtt.Asc.long.all <- arrange(p3.AsyPtt.Asc.long.all, SN, cSrc, Resp, aCorr)
p3.AsyPtt.Asc.long.exp <- p3.AsyPtt.Asc.long.all %>% filter(Btw==1)
p3.AsyPtt.Asc.long.con <- p3.AsyPtt.Asc.long.all %>% filter(Btw==2)
# wide format
p3.AsyPtt.Asc.swide.all <- p3.AsyPtt.Asc.long.all %>% spread(key = Resp, value = aCorr)
p3.AsyPtt.Asc.swide.exp <- p3.AsyPtt.Asc.swide.all %>% filter(Btw==1)
p3.AsyPtt.Asc.swide.con <- p3.AsyPtt.Asc.swide.all %>% filter(Btw==2)
# summary
p3.AsyPtt.Asc.g.all <- p3.AsyPtt.Asc.long.all %>% group_by(Btw, cSrc, Resp) %>%
summarise(aCorr.M = mean(aCorr), aCorr.SD = sd(aCorr)) %>% ungroup()
p3.AsyPtt.Asc.g.all$aCorr.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.Asc.long.all, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = c("cSrc","Resp"))$se
p3.AsyPtt.Asc.g.all$aCorr.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.Asc.long.all, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = c("cSrc","Resp"))$ci
p3.AsyPtt.Asc.g.exp <- p3.AsyPtt.Asc.g.all %>% filter(Btw==1)
p3.AsyPtt.Asc.g.con <- p3.AsyPtt.Asc.g.all %>% filter(Btw==2)
p3.AsyPtt.Asc.g.table.all <- p3.AsyPtt.Asc.g.all %>% unite(cSrc_Resp, cSrc:Resp, remove=TRUE) %>% rename(sResp = "cSrc_Resp")
p3.AsyPtt.Asc.g.table.all$sResp[p3.AsyPtt.Asc.g.table.all$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.Asc.g.table.all$sResp[p3.AsyPtt.Asc.g.table.all$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.Asc.g.table.all$sResp[p3.AsyPtt.Asc.g.table.all$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.Asc.g.table.all$sResp[p3.AsyPtt.Asc.g.table.all$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.Asc.g.table.all %>% arrange(c(1,3,4,2,5,7,8,6)) %>% kable(digit=2)| Btw | sResp | aCorr.M | aCorr.SD | aCorr.se | aCorr.ci |
|---|---|---|---|---|---|
| 1 | List 1 Correct | 87.36 | 7.15 | 1.36 | 2.87 |
| 1 | List 2 Correct | 91.18 | 9.58 | 1.36 | 2.88 |
| 1 | Source Confusion | 81.73 | 13.98 | 1.93 | 4.07 |
| 1 | Intrusion | 87.13 | 6.42 | 1.33 | 2.81 |
| 2 | List 1 Correct | 86.80 | 7.45 | 0.77 | 1.62 |
| 2 | List 2 Correct | 88.26 | 7.94 | 1.59 | 3.36 |
| 2 | Source Confusion | 80.93 | 10.20 | 1.62 | 3.43 |
| 2 | Intrusion | 85.03 | 10.53 | 1.60 | 3.37 |
## plot
p3.Asc.all.plot3 <- ggplot(data=p3.AsyPtt.Asc.long.all, aes(x=Resp, y=aCorr, fill=Btw)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.Asc.g.all, aes(x = Resp, y=aCorr.M, ymin = aCorr.M - aCorr.ci, ymax = aCorr.M + aCorr.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
facet_grid(.~cSrc, scales="free_x",
labeller = labeller(cSrc = c("List_1" = "List 1 (Day 1)","List_2" = "List 2 (Day 2)"))) +
scale_x_discrete(labels=c("Day 1", "Day 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0, 105), clip = "on") +
labs(x = "Source Response by Object List", y = "Association Accuracy (%)", fill ="Group") +
# ggtitle("Association Memory Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position="top")
p3.Asc.exp.plot3 <- ggplot(data=p3.AsyPtt.Asc.long.exp, aes(x=cSrc, y=aCorr, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=aCorr, group=Resp, color=SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.Asc.swide.exp,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1-.16, y=filter(p3.AsyPtt.Asc.swide.exp,cSrc=="List_1")$"Day_1",
xend=1+.16, yend=filter(p3.AsyPtt.Asc.swide.exp,cSrc=="List_1")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.Asc.swide.exp,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2-.16, y=filter(p3.AsyPtt.Asc.swide.exp,cSrc=="List_2")$"Day_1",
xend=2+.16, yend=filter(p3.AsyPtt.Asc.swide.exp,cSrc=="List_2")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.AsyPtt.Asc.g.exp, aes(x = cSrc, y = aCorr.M, ymin = aCorr.M-aCorr.ci, ymax = aCorr.M+aCorr.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#56b4e9", "#e69f00", "#ff6164"),
labels = c("Day 1", "Day 2")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(25, 100), clip = "on") +
labs(x = "Object List", y = "Accuracy (%)", fill ="Attribution") +
# ggtitle("Association Memory (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
p3.Asc.con.plot3 <- ggplot(data=p3.AsyPtt.Asc.long.con, aes(x=cSrc, y=aCorr, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=aCorr, group=Resp, color=SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.Asc.swide.con,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1-.16, y=filter(p3.AsyPtt.Asc.swide.con,cSrc=="List_1")$"Day_1",
xend=1+.16, yend=filter(p3.AsyPtt.Asc.swide.con,cSrc=="List_1")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.Asc.swide.con,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2-.16, y=filter(p3.AsyPtt.Asc.swide.con,cSrc=="List_2")$"Day_1",
xend=2+.16, yend=filter(p3.AsyPtt.Asc.swide.con,cSrc=="List_2")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.AsyPtt.Asc.g.con, aes(x = cSrc, y = aCorr.M, ymin = aCorr.M-aCorr.ci, ymax = aCorr.M+aCorr.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#56b4e9", "#e69f00", "#ff6164"),
labels = c("Day 1", "Day 2")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(25, 100), clip = "on") +
labs(x = "Object List", y = "Accuracy (%)", fill ="Attribution") +
# ggtitle("Association Memory (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
ggpubr::ggarrange(p3.Asc.all.plot3, labels = "A) All Group",
ggpubr::ggarrange(p3.Asc.exp.plot3, p3.Asc.con.plot3, ncol = 2, labels = c("B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16)), nrow = 2,
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 출처 반응에 따른 연합 기억 정확도의 차이를 살펴보기 위해, 집단과 출처 반응을 요인으로 한 2 X 4 혼합 요인 분산분석을 수행하였다.
# List 1 & 2 Association Memory by Source Response
p3.AsyPtt.Asc.long.all <- p3.AsyPtt.Asc.long.all %>% unite(cSrc_Resp, cSrc:Resp, remove=TRUE) %>% rename(sResp = "cSrc_Resp")
p3.AsyPtt.Asc.long.all$sResp[p3.AsyPtt.Asc.long.all$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.Asc.long.all$sResp[p3.AsyPtt.Asc.long.all$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.Asc.long.all$sResp[p3.AsyPtt.Asc.long.all$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.Asc.long.all$sResp[p3.AsyPtt.Asc.long.all$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.Asc.long.all$sResp <- factor(p3.AsyPtt.Asc.long.all$sResp)
p3.AsyPtt.Asc.all.1.aov <- aov_ez(id = "SN", dv = "aCorr", data = p3.AsyPtt.Asc.long.all, between = "Btw", within = "sResp")
anova(p3.AsyPtt.Asc.all.1.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 225.180 | 0.406 | 0.012 | 0.528 |
| sResp | 2.581 | 87.744 | 50.888 | 10.099 | 0.229 | 0.000 |
| Btw:sResp | 2.581 | 87.744 | 50.888 | 0.254 | 0.007 | 0.829 |
분석 결과, 출처 반응의 주효과가 유의하였다.
# source response contrast
p3.AsyPtt.Asc.m1.1.all <- emmeans(p3.AsyPtt.Asc.all.1.aov, pairwise ~ sResp | Btw, type = "response")
p3.AsyPtt.Asc.m1.1.all$contrasts %>% kable(digit=3)| contrast | Btw | estimate | SE | df | t.ratio | p.value |
|---|---|---|---|---|---|---|
| Intrusion - List.1.Correct | 1 | -0.230 | 1.691 | 34 | -0.136 | 0.999 |
| Intrusion - List.2.Correct | 1 | -4.059 | 2.202 | 34 | -1.843 | 0.271 |
| Intrusion - Source.Confusion | 1 | 5.392 | 2.605 | 34 | 2.070 | 0.183 |
| List.1.Correct - List.2.Correct | 1 | -3.829 | 1.894 | 34 | -2.021 | 0.200 |
| List.1.Correct - Source.Confusion | 1 | 5.622 | 2.216 | 34 | 2.537 | 0.072 |
| List.2.Correct - Source.Confusion | 1 | 9.451 | 2.488 | 34 | 3.798 | 0.003 |
| Intrusion - List.1.Correct | 2 | -1.770 | 1.691 | 34 | -1.046 | 0.724 |
| Intrusion - List.2.Correct | 2 | -3.230 | 2.202 | 34 | -1.467 | 0.468 |
| Intrusion - Source.Confusion | 2 | 4.108 | 2.605 | 34 | 1.577 | 0.405 |
| List.1.Correct - List.2.Correct | 2 | -1.461 | 1.894 | 34 | -0.771 | 0.867 |
| List.1.Correct - Source.Confusion | 2 | 5.877 | 2.216 | 34 | 2.653 | 0.056 |
| List.2.Correct - Source.Confusion | 2 | 7.338 | 2.488 | 34 | 2.949 | 0.028 |
출처 반응에 따른 사후 분석을 수행한 결과, 실험 집단에서 List 2 Correct (L2>D2)은 Source Confusion (L1>D2) 보다 유의하게 높은 연합 기억 정확도를 보였다. 통제 집단에서도 이와 마찬가지로 List 2 Correct (L2>D2)이 Source Confusion (L1>D2) 보다 유의하게 높은 연합 기억 정확도를 보였다. Intrusion (L2>D1)과 Source Confusion (L1>D2), List 2 Correct (L2>D2) 간의 차이는 유의하지 않았다. 이 외에 다른 비교들도 유의하지 않았다.
분산 분석 결과를 보충하기 위해, 집단과 출처 반응을 고정 효과로 하고, 참가자와 자극의 무선 효과를 포함한 일반화 선형 혼합 모형을 검증하였다.
p3.aRsp <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.aRsp <- p3.aRsp %>% filter(cSrc != 3, Resp != 3)
p3.aRsp$SN = factor(p3.aRsp$SN); p3.aRsp$Btw = factor(p3.aRsp$Btw)
p3.aRsp$cSrc = factor(p3.aRsp$cSrc, labels=c("List_1", "List_2"))
p3.aRsp$Resp <- factor(p3.aRsp$Resp, levels=c(1,2), labels=c("Day_1", "Day_2"))
p3.aRsp <- p3.aRsp %>% select(SN, Btw, cSrc, Resp, IMname, Corr, aCorr) %>%
unite(cSrc_Resp, cSrc:Resp, remove=TRUE) %>% rename(sResp = "cSrc_Resp")
p3.aRsp$sResp[p3.aRsp$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.aRsp$sResp[p3.aRsp$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.aRsp$sResp[p3.aRsp$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.aRsp$sResp[p3.aRsp$sResp=='List_2_Day_1'] <- 'Intrusion'(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.Asyptt.Asc.all.Model.1 <- afex::mixed(aCorr ~ Btw*sResp + (1|SN) + (1|IMname),
p3.aRsp, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6), optimizer = "bobyqa"))
save(p3.Asyptt.Asc.all.Model.1, file="memudet_day3_Asyptt_Asc_afex.Rdata")
stopCluster(cl)anova(p3.Asyptt.Asc.all.Model.1) %>% kable(digits=3)분석 결과, 출처 반응의 주효과가 유의하였다.
p3.Asyptt.Asc.m2.1.all <- emmeans(p3.Asyptt.Asc.all.Model.1, pairwise ~ sResp | Btw, type = "response")
p3.Asyptt.Asc.m2.1.all$contrasts %>% kable(digits=3)사후 분석 결과, 실험 집단에서 List 1 Correct의 연합 기억이 Source Confusion, List 2 Correct보다 우수하였다. 또한 List 2 Correct의 연합 기억은 Source Confusion, Intrusion 보다 우수하였다. 통제 집단에서는 List 1 Correct의 연합 기억이 Source Confusion 보다 우수하였다. 그리고 List 2 Correct의 연합 기억이 Source Confusion 보다 우수하였다. 다른 비교는 유의하지 않았다.
목록 1에서 집단과 예측 오류 조건에 따라 연합 기억 수준이 다른지 살펴보았다. 각 조건의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 1 Association Memory
# long format
p3.Acc.Asc.long.all.0 <- p3 %>% filter(cPE != "pe0", cSrc == "List_1") %>% group_by(SN, Btw, cPE) %>%
summarise(aCorr = mean(aCorr)*100) %>% ungroup()
p3.Acc.Asc.long.exp.0 <- p3.Acc.Asc.long.all.0 %>% filter(Btw==1)
p3.Acc.Asc.long.con.0 <- p3.Acc.Asc.long.all.0 %>% filter(Btw==2)
# wide format
p3.Acc.Asc.swide.all.0 <- p3.Acc.Asc.long.all.0 %>% spread(key = cPE, value = aCorr)
p3.Acc.Asc.swide.exp.0 <- p3.Acc.Asc.swide.all.0 %>% filter(Btw==1)
p3.Acc.Asc.swide.con.0 <- p3.Acc.Asc.swide.all.0 %>% filter(Btw==2)
# summary
p3.Acc.Asc.g.all.0 <- p3.Acc.Asc.long.all.0 %>% group_by(Btw, cPE) %>%
summarise(aCorr.M = mean(aCorr), aCorr.SD = sd(aCorr)) %>% ungroup()
p3.Acc.Asc.g.all.0$aCorr.se <- Rmisc::summarySEwithin(data = p3.Acc.Asc.long.all.0, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.Asc.g.all.0$aCorr.ci <- Rmisc::summarySEwithin(data = p3.Acc.Asc.long.all.0, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.Asc.g.exp.0 <- p3.Acc.Asc.g.all.0 %>% filter(Btw==1)
p3.Acc.Asc.g.con.0 <- p3.Acc.Asc.g.all.0 %>% filter(Btw==2)
p3.Acc.Asc.g.all.0 %>% kable(digit=2)| Btw | cPE | aCorr.M | aCorr.SD | aCorr.se | aCorr.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 82.59 | 13.21 | 1.96 | 4.14 |
| 1 | pe2 | 84.26 | 10.77 | 1.81 | 3.82 |
| 1 | pe3 | 83.70 | 11.93 | 1.53 | 3.23 |
| 2 | pe1 | 82.41 | 12.20 | 2.23 | 4.71 |
| 2 | pe2 | 81.67 | 10.74 | 1.73 | 3.64 |
| 2 | pe3 | 79.81 | 10.87 | 2.11 | 4.46 |
## plot
p3.Asc.all.plot4.2.0 <- ggplot(p3.Acc.Asc.g.all.0, mapping=aes(x=cPE, y=aCorr.M, group=Btw)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.Asc.g.all.0, mapping = aes(x=cPE, y=aCorr.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)", fill = "Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.Asc.exp.plot4.2.0 <- ggplot(p3.Acc.Asc.g.exp.0, mapping=aes(x=cPE, y=aCorr.M, group=1)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.long.exp.0, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aCorr, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.long.exp.0, mapping = aes(x=cPE, y=aCorr, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.Asc.con.plot4.2.0 <- ggplot(p3.Acc.Asc.g.con.0, mapping=aes(x=cPE, y=aCorr.M, group=1)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.long.con.0, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aCorr, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.long.con.0, mapping = aes(x=cPE, y=aCorr, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.Asc.all.plot4.2.0, p3.Asc.exp.plot4.2.0, p3.Asc.con.plot4.2.0, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.all.aov.Asc.0 <- aov_ez(id = "SN", dv = "aCorr", data = p3.Acc.Asc.long.all.0, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.Asc.0, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 259.804 | 0.513 | 0.015 | 0.479 |
| cPE | 1.911 | 64.981 | 77.383 | 0.179 | 0.005 | 0.827 |
| Btw:cPE | 1.911 | 64.981 | 77.383 | 0.430 | 0.012 | 0.643 |
분석 결과, 모든 효과가 유의하지 않았다.
분산 분석 결과를 보충하기 위하여, 목록 1의 연합 기억 정확도에 대해 집단과 예측 오류 조건의 고정 효과와 참가자와 자극 항목의 무선 효과를 포함한 일반화 선형 혼합 모형을 검증하였다.
p3.L1.asc.corr <- p3 %>% filter(cSrc=="List_1", Resp != "New")(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.L1.asc.corr.Model.1 <- afex::mixed(aCorr ~ Btw*cPE + (1|SN) + (1|IMname),
p3.L1.asc.corr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.L1.asc.corr.Model.1, file="memudet_day3_L1asc_corr.Rdata")
stopCluster(cl)anova(p3.L1.asc.corr.Model.1) %>% kable(digit=3)분석 결과, 모든 효과가 유의하지 않았다.
목록 2에서 집단과 예측 오류 조건에 따라 연합 기억 수준이 다른지 살펴보았다. 각 조건의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 2 Association Memory
# long format
p3.Acc.Asc.long.all.0.2 <- p3 %>% filter(cPE != "pe0", cSrc == "List_2") %>% group_by(SN, Btw, cPE) %>%
summarise(aCorr = mean(aCorr)*100) %>% ungroup()
p3.Acc.Asc.long.exp.0.2 <- p3.Acc.Asc.long.all.0.2 %>% filter(Btw==1)
p3.Acc.Asc.long.con.0.2 <- p3.Acc.Asc.long.all.0.2 %>% filter(Btw==2)
# wide format
p3.Acc.Asc.swide.all.0.2 <- p3.Acc.Asc.long.all.0.2 %>% spread(key = cPE, value = aCorr)
p3.Acc.Asc.swide.exp.0.2 <- p3.Acc.Asc.swide.all.0.2 %>% filter(Btw==1)
p3.Acc.Asc.swide.con.0.2 <- p3.Acc.Asc.swide.all.0.2 %>% filter(Btw==2)
# summary
p3.Acc.Asc.g.all.0.2 <- p3.Acc.Asc.long.all.0.2 %>% group_by(Btw, cPE) %>%
summarise(aCorr.M = mean(aCorr), aCorr.SD = sd(aCorr)) %>% ungroup()
p3.Acc.Asc.g.all.0.2$aCorr.se <- Rmisc::summarySEwithin(data = p3.Acc.Asc.long.all.0.2, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.Asc.g.all.0.2$aCorr.ci <- Rmisc::summarySEwithin(data = p3.Acc.Asc.long.all.0.2, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.Asc.g.exp.0.2 <- p3.Acc.Asc.g.all.0.2 %>% filter(Btw==1)
p3.Acc.Asc.g.con.0.2 <- p3.Acc.Asc.g.all.0.2 %>% filter(Btw==2)
p3.Acc.Asc.g.all.0.2 %>% kable(digit=2)| Btw | cPE | aCorr.M | aCorr.SD | aCorr.se | aCorr.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 88.52 | 13.44 | 2.08 | 4.39 |
| 1 | pe2 | 87.96 | 9.30 | 2.13 | 4.49 |
| 1 | pe3 | 87.59 | 10.89 | 1.08 | 2.28 |
| 2 | pe1 | 84.44 | 9.29 | 1.46 | 3.08 |
| 2 | pe2 | 83.15 | 10.45 | 1.88 | 3.96 |
| 2 | pe3 | 85.56 | 12.05 | 2.01 | 4.23 |
## plot
p3.Asc.all.plot4.2.0.2 <- ggplot(p3.Acc.Asc.g.all.0.2, mapping=aes(x=cPE, y=aCorr.M, group=Btw)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.Asc.g.all.0.2, mapping = aes(x=cPE, y=aCorr.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)", fill = "Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L2>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.Asc.exp.plot4.2.0.2 <- ggplot(p3.Acc.Asc.g.exp.0.2, mapping=aes(x=cPE, y=aCorr.M, group=1)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.long.exp.0.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aCorr, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.long.exp.0.2, mapping = aes(x=cPE, y=aCorr, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.Asc.con.plot4.2.0.2 <- ggplot(p3.Acc.Asc.g.con.0.2, mapping=aes(x=cPE, y=aCorr.M, group=1)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.long.con.0.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aCorr, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.long.con.0.2, mapping = aes(x=cPE, y=aCorr, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.Asc.all.plot4.2.0.2, p3.Asc.exp.plot4.2.0.2, p3.Asc.con.plot4.2.0.2, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.all.aov.Asc.0.2 <- aov_ez(id = "SN", dv = "aCorr", data = p3.Acc.Asc.long.all.0.2, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.Asc.0.2, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 230.071 | 1.557 | 0.044 | 0.221 |
| cPE | 1.881 | 63.951 | 70.758 | 0.172 | 0.005 | 0.830 |
| Btw:cPE | 1.881 | 63.951 | 70.758 | 0.280 | 0.008 | 0.743 |
분석 결과, 모든 효과가 유의하지 않았다.
분산 분석 결과를 보충하기 위하여, 목록 1의 연합 기억 정확도에 대해 집단과 예측 오류 조건의 고정 효과와 참가자와 자극 항목의 무선 효과를 포함한 일반화 선형 혼합 모형을 검증하였다.
p3.L2.asc.corr <- p3 %>% filter(cSrc=="List_2", Resp != "New")(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.L2.asc.corr.Model.1 <- afex::mixed(aCorr ~ Btw*cPE + (1|SN) + (1|IMname),
p3.L2.asc.corr, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.L2.asc.corr.Model.1, file="memudet_day3_L2asc_corr.Rdata")
stopCluster(cl)anova(p3.L2.asc.corr.Model.1) %>% kable(digit=3)분석 결과, 모든 효과가 유의하지 않았다.
집단, 예측 오류 조건에 따른 연합 기억 정확도가 출처 반응의 유형에 따라 다른지 살펴보기 위한 분석을 수행하였다. 출처 기억 확신도 분석과 유사하게 각 출처 반응을 예측 오류 조건으로 구분하였을 때 시행수가 충분하지 않은 경우에는 연합 기억 정확도의 평균이 대표성을 가지지 못할 수 있다. 따라서 각 출처 반응에서의 시행수를 확인하였다.
# The number of trials per condition
p3 %>% filter(cSrc!="List_3", Resp!="New") %>%
group_by(SN, cSrc, Resp, cPE) %>%
summarise(NumTrial = length(aCorr)) %>%
ungroup %>%
group_by(cSrc, Resp, cPE) %>%
summarise(Avg = mean(NumTrial),
Med = median(NumTrial),
Min = min(NumTrial),
Max = max(NumTrial)) %>%
ungroup %>% kable(digit=4)| cSrc | Resp | cPE | Avg | Med | Min | Max |
|---|---|---|---|---|---|---|
| List_1 | Day_1 | pe1 | 21.4722 | 22.0 | 13 | 30 |
| List_1 | Day_1 | pe2 | 22.5278 | 22.0 | 10 | 30 |
| List_1 | Day_1 | pe3 | 22.0833 | 22.5 | 15 | 28 |
| List_1 | Day_2 | pe1 | 7.9714 | 8.0 | 1 | 17 |
| List_1 | Day_2 | pe2 | 6.4571 | 6.0 | 1 | 15 |
| List_1 | Day_2 | pe3 | 6.3333 | 6.0 | 2 | 15 |
| List_2 | Day_1 | pe1 | 7.8056 | 7.5 | 2 | 15 |
| List_2 | Day_1 | pe2 | 9.1111 | 9.0 | 2 | 17 |
| List_2 | Day_1 | pe3 | 8.9722 | 9.0 | 1 | 19 |
| List_2 | Day_2 | pe1 | 21.3889 | 22.0 | 12 | 28 |
| List_2 | Day_2 | pe2 | 19.8333 | 20.0 | 13 | 27 |
| List_2 | Day_2 | pe3 | 20.2778 | 20.0 | 10 | 28 |
각 출처 반응의 시행수에서 Source Confusion (L1>D2), Intrusion (L2>D1)은 평균 시행수가 10시행에 미치지 못하므로 분석에서 제외하였다. 따라서 출처 반응의 종속 변인 중 List 1 Correct (L1>D1), List 2 Correct (L2>D2)에서 집단과 예측 오류 조건에 따른 차이를 비교하였다.
List 1 Correct (L1>D1) 출처 반응에서 집단과 예측 오류 조건에 따라 연합 기억 수준이 다른지 살펴보았다. 각 조건의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 1 Association Memory of Correct Response
# long format
p3.Acc.Asc.long.all.1 <- p3 %>% filter(cPE != "pe0", Correct == 1, cSrc == "List_1") %>% group_by(SN, Btw, cPE) %>%
summarise(aCorr = mean(aCorr)*100) %>% ungroup()
p3.Acc.Asc.long.exp.1 <- p3.Acc.Asc.long.all.1 %>% filter(Btw==1)
p3.Acc.Asc.long.con.1 <- p3.Acc.Asc.long.all.1 %>% filter(Btw==2)
# wide format
p3.Acc.Asc.swide.all.1 <- p3.Acc.Asc.long.all.1 %>% spread(key = cPE, value = aCorr)
p3.Acc.Asc.swide.exp.1 <- p3.Acc.Asc.swide.all.1 %>% filter(Btw==1)
p3.Acc.Asc.swide.con.1 <- p3.Acc.Asc.swide.all.1 %>% filter(Btw==2)
# summary
p3.Acc.Asc.g.all.1 <- p3.Acc.Asc.long.all.1 %>% group_by(Btw, cPE) %>%
summarise(aCorr.M = mean(aCorr), aCorr.SD = sd(aCorr)) %>% ungroup()
p3.Acc.Asc.g.all.1$aCorr.se <- Rmisc::summarySEwithin(data = p3.Acc.Asc.long.all.1, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.Asc.g.all.1$aCorr.ci <- Rmisc::summarySEwithin(data = p3.Acc.Asc.long.all.1, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.Asc.g.exp.1 <- p3.Acc.Asc.g.all.1 %>% filter(Btw==1)
p3.Acc.Asc.g.con.1 <- p3.Acc.Asc.g.all.1 %>% filter(Btw==2)
p3.Acc.Asc.g.all.1 %>% kable(digit=2)| Btw | cPE | aCorr.M | aCorr.SD | aCorr.se | aCorr.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 84.73 | 11.06 | 2.18 | 4.61 |
| 1 | pe2 | 89.24 | 10.22 | 2.47 | 5.22 |
| 1 | pe3 | 88.21 | 10.80 | 1.87 | 3.95 |
| 2 | pe1 | 85.36 | 11.41 | 2.19 | 4.63 |
| 2 | pe2 | 86.25 | 10.40 | 1.77 | 3.74 |
| 2 | pe3 | 88.30 | 10.36 | 2.33 | 4.92 |
## plot
p3.Asc.all.plot4.2.1 <- ggplot(p3.Acc.Asc.g.all.1, mapping=aes(x=cPE, y=aCorr.M, group=Btw)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.Asc.g.all.1, mapping = aes(x=cPE, y=aCorr.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)", fill = "Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.Asc.exp.plot4.2.1 <- ggplot(p3.Acc.Asc.g.exp.1, mapping=aes(x=cPE, y=aCorr.M, group=1)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.long.exp.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aCorr, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.long.exp.1, mapping = aes(x=cPE, y=aCorr, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.Asc.con.plot4.2.1 <- ggplot(p3.Acc.Asc.g.con.1, mapping=aes(x=cPE, y=aCorr.M, group=1)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.long.con.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aCorr, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.long.con.1, mapping = aes(x=cPE, y=aCorr, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.Asc.all.plot4.2.1, p3.Asc.exp.plot4.2.1, p3.Asc.con.plot4.2.1, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.all.aov.Asc.1 <- aov_ez(id = "SN", dv = "aCorr", data = p3.Acc.Asc.long.all.1, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.Asc.1, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 157.067 | 0.098 | 0.003 | 0.756 |
| cPE | 1.997 | 67.897 | 93.897 | 1.141 | 0.032 | 0.325 |
| Btw:cPE | 1.997 | 67.897 | 93.897 | 0.366 | 0.011 | 0.695 |
분석 결과, 모든 효과가 유의하지 않았다.
분산 분석 결과를 보충하기 위하여, List 1 Correct의 연합 기억 정확도에 대해 집단과 예측 오류 조건의 고정 효과와 참가자와 자극 항목의 무선 효과를 포함한 일반화 선형 혼합 모형을 검증하였다.
p3.L1.asc.corr.1 <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.L1.asc.corr.1 <- p3.L1.asc.corr.1 %>% filter(cSrc == 1, Resp != 3, cPE != 0, Corr==1)
p3.L1.asc.corr.1$SN = factor(p3.L1.asc.corr.1$SN); p3.L1.asc.corr.1$Btw = factor(p3.L1.asc.corr.1$Btw)
p3.L1.asc.corr.1$cSrc = factor(p3.L1.asc.corr.1$cSrc, labels=c("List_1"))
p3.L1.asc.corr.1$cPE = factor(p3.L1.asc.corr.1$cPE, levels=c(1,2,3), labels=c("pe1","pe2","pe3"))
p3.L1.asc.corr.1$Resp <- factor(p3.L1.asc.corr.1$Resp, labels=c("Day_1"))
p3.L1.asc.corr.1$aCorr <- as.numeric(p3.L1.asc.corr.1$aCorr==1)(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.L1.asc.corr.Model.2 <- afex::mixed(aCorr ~ Btw*cPE + (1|SN) + (1|IMname),
p3.L1.asc.corr.1, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.L1.asc.corr.Model.2, file="memudet_day3_L1corrL1asc_corr.Rdata")
stopCluster(cl)anova(p3.L1.asc.corr.Model.2) %>% kable(digit=3)분석 결과, 모든 효과가 유의하지 않았다.
List 2 Correct (L2>D2) 출처 반응에서 집단과 예측 오류 조건에 따라 연합 기억 수준이 다른지 살펴보았다. 각 조건의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 2 Association Memory of Correct Source Response
# long format
p3.Acc.Asc.long.all.2 <- p3 %>% filter(cPE != "pe0", Correct == 1, cSrc == "List_2") %>% group_by(SN, Btw, cPE) %>%
summarise(aCorr = mean(aCorr)*100) %>% ungroup()
p3.Acc.Asc.long.exp.2 <- p3.Acc.Asc.long.all.2 %>% filter(Btw==1)
p3.Acc.Asc.long.con.2 <- p3.Acc.Asc.long.all.2 %>% filter(Btw==2)
# wide format
p3.Acc.Asc.swide.all.2 <- p3.Acc.Asc.long.all.2 %>% spread(key = cPE, value = aCorr)
p3.Acc.Asc.swide.exp.2 <- p3.Acc.Asc.swide.all.2 %>% filter(Btw==1)
p3.Acc.Asc.swide.con.2 <- p3.Acc.Asc.swide.all.2 %>% filter(Btw==2)
# summary
p3.Acc.Asc.g.all.2 <- p3.Acc.Asc.long.all.2 %>% group_by(Btw, cPE) %>%
summarise(aCorr.M = mean(aCorr), aCorr.SD = sd(aCorr)) %>% ungroup()
p3.Acc.Asc.g.all.2$aCorr.se <- Rmisc::summarySEwithin(data = p3.Acc.Asc.long.all.2, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.Asc.g.all.2$aCorr.ci <- Rmisc::summarySEwithin(data = p3.Acc.Asc.long.all.2, measurevar = "aCorr",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.Asc.g.exp.2 <- p3.Acc.Asc.g.all.2 %>% filter(Btw==1)
p3.Acc.Asc.g.con.2 <- p3.Acc.Asc.g.all.2 %>% filter(Btw==2)
p3.Acc.Asc.g.all.2 %>% kable(digit=2)| Btw | cPE | aCorr.M | aCorr.SD | aCorr.se | aCorr.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 91.69 | 13.20 | 2.03 | 4.29 |
| 1 | pe2 | 92.55 | 7.64 | 1.69 | 3.56 |
| 1 | pe3 | 89.34 | 13.39 | 1.93 | 4.07 |
| 2 | pe1 | 88.62 | 7.89 | 1.45 | 3.06 |
| 2 | pe2 | 88.84 | 9.67 | 1.50 | 3.17 |
| 2 | pe3 | 88.25 | 11.33 | 1.74 | 3.66 |
## plot
p3.Asc.all.plot4.2.2 <- ggplot(p3.Acc.Asc.g.all.2, mapping=aes(x=cPE, y=aCorr.M, group=Btw)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.Asc.g.all.2, mapping = aes(x=cPE, y=aCorr.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)", fill = "Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.Asc.exp.plot4.2.2 <- ggplot(p3.Acc.Asc.g.exp.2, mapping=aes(x=cPE, y=aCorr.M, group=1)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.long.exp.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aCorr, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.long.exp.2, mapping = aes(x=cPE, y=aCorr, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 2 AM of Correct Source (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.Asc.con.plot4.2.2 <- ggplot(p3.Acc.Asc.g.con.2, mapping=aes(x=cPE, y=aCorr.M, group=1)) +
geom_ribbon(aes(ymin=aCorr.M-aCorr.ci, ymax=aCorr.M+aCorr.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aCorr.M, ymax=aCorr.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.long.con.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aCorr, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.long.con.2, mapping = aes(x=cPE, y=aCorr, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(20, 100), clip = "on") +
labs(x = "Prediction Error", y = "Association Accuracy (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 2 AM of Correct Source (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.Asc.all.plot4.2.2, p3.Asc.exp.plot4.2.2, p3.Asc.con.plot4.2.2, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류를 요인으로 하는 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.all.aov.Asc.2 <- aov_ez(id = "SN", dv = "aCorr", data = p3.Acc.Asc.long.all.2, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.Asc.2, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.00 | 34.000 | 226.160 | 0.820 | 0.024 | 0.372 |
| cPE | 1.95 | 66.294 | 62.553 | 0.564 | 0.016 | 0.567 |
| Btw:cPE | 1.95 | 66.294 | 62.553 | 0.275 | 0.008 | 0.755 |
분석 결과, 모든 효과가 유의하지 않았다.
분산 분석 결과를 보충하기 위하여, List 1 Correct의 연합 기억 정확도에 대해 집단과 예측 오류 조건의 고정 효과와 참가자와 자극 항목의 무선 효과를 포함한 일반화 선형 혼합 모형을 검증하였다.
p3.L2.asc.corr.1 <- read.csv("MemUdt_PE_d3t6_m.csv", header = T)
p3.L2.asc.corr.1 <- p3.L2.asc.corr.1 %>% filter(cSrc == 2, Resp != 3, cPE != 0, Corr==1)
p3.L2.asc.corr.1$SN = factor(p3.L2.asc.corr.1$SN); p3.L2.asc.corr.1$Btw = factor(p3.L2.asc.corr.1$Btw)
p3.L2.asc.corr.1$cSrc = factor(p3.L2.asc.corr.1$cSrc, labels=c("List_2"))
p3.L2.asc.corr.1$cPE = factor(p3.L2.asc.corr.1$cPE, levels=c(1,2,3), labels=c("pe1","pe2","pe3"))
p3.L2.asc.corr.1$Resp <- factor(p3.L2.asc.corr.1$Resp, labels=c("Day_2"))
p3.L2.asc.corr.1$aCorr <- as.numeric(p3.L2.asc.corr.1$aCorr==1)(nc <- detectCores())
cl <- makeCluster(rep("localhost", nc))
p3.L2.asc.corr.Model.1 <- afex::mixed(aCorr ~ Btw*cPE + (1|SN) + (1|IMname),
p3.L2.asc.corr.1, method = "LRT", cl = cl,
family=binomial(link="logit"),
control = glmerControl(optCtrl = list(maxfun = 1e6)))
save(p3.L2.asc.corr.Model.1, file="memudet_day3_L2corrL2asc_corr.Rdata")
stopCluster(cl)anova(p3.L2.asc.corr.Model.1) %>% kable(digit=3)분석 결과, 모든 효과가 유의하지 않았다.
각 집단과 물체 목록 조건에서의 연합 기억 확신도 평균과 표준편차를 계산하였다. 아래 그래프에서 x 축은 집단, y 축은 확신도 평정을 나타내며, 색은 각 물체 목록을 표시한다. 빨간 점은 평균, 오차 막대는 95% 신뢰구간을 나타낸다.
# long format
p3.day.Asc.conf.long.all <- p3 %>% filter(cSrc != "List_3", Resp != "New") %>% group_by(SN, Btw, cSrc) %>%
summarise(aConf = mean(aConf)) %>% ungroup
p3.day.Asc.conf.long.exp <- p3.day.Asc.conf.long.all %>% filter(Btw==1)
p3.day.Asc.conf.long.con <- p3.day.Asc.conf.long.all %>% filter(Btw==2)
# wide format
p3.day.Asc.conf.swide.all <- p3.day.Asc.conf.long.all %>% spread(key = cSrc, value = aConf)
p3.day.Asc.conf.swide.exp <- p3.day.Asc.conf.swide.all %>% filter(Btw==1)
p3.day.Asc.conf.swide.con <- p3.day.Asc.conf.swide.all %>% filter(Btw==2)
# summary
p3.day.Asc.conf.g.all <- p3.day.Asc.conf.long.all %>% group_by(Btw, cSrc) %>%
summarise(aConf.M = mean(aConf), aConf.SD = sd(aConf)) %>% ungroup()
p3.day.Asc.conf.g.all$aConf.se <- Rmisc::summarySEwithin(data = p3.day.Asc.conf.long.all, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cSrc")$se
p3.day.Asc.conf.g.all$aConf.ci <- Rmisc::summarySEwithin(data = p3.day.Asc.conf.long.all, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cSrc")$ci
p3.day.Asc.conf.g.exp <- p3.day.Asc.conf.g.all %>% filter(Btw==1)
p3.day.Asc.conf.g.con <- p3.day.Asc.conf.g.all %>% filter(Btw==2)
p3.day.Asc.conf.g.all %>% kable(digit=2)| Btw | cSrc | aConf.M | aConf.SD | aConf.se | aConf.ci |
|---|---|---|---|---|---|
| 1 | List_1 | 3.51 | 0.38 | 0.03 | 0.06 |
| 1 | List_2 | 3.57 | 0.39 | 0.03 | 0.06 |
| 2 | List_1 | 3.48 | 0.33 | 0.03 | 0.07 |
| 2 | List_2 | 3.53 | 0.34 | 0.03 | 0.07 |
## plot
p3.day.Asc.conf.all.plot.1 <- ggplot(data=p3.day.Asc.conf.long.all, aes(x=Btw, y=aConf, fill=cSrc)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=Btw, y=aConf, group=cSrc, color=SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.day.Asc.conf.swide.all,Btw==1), inherit.aes = FALSE,
aes(x=1-.16, y=filter(p3.day.Asc.conf.swide.all,Btw==1)$"List_1",
xend=1+.16, yend=filter(p3.day.Asc.conf.swide.all,Btw==1)$"List_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.day.Asc.conf.swide.all,Btw==2), inherit.aes = FALSE,
aes(x=2-.16, y=filter(p3.day.Asc.conf.swide.all,Btw==2)$"List_1",
xend=2+.16, yend=filter(p3.day.Asc.conf.swide.all,Btw==2)$"List_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.day.Asc.conf.g.all, aes(x = Btw, y = aConf.M, ymin = aConf.M-aConf.ci, ymax = aConf.M+aConf.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("List 1", "List 2")) +
scale_x_discrete(labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Group", y = "Confidence Rating (1-4)", fill ="Object List") +
# ggtitle("Association Memory (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
p3.day.Asc.conf.all.plot.2 <- ggplot(data=p3.day.Asc.conf.long.all, aes(x=cSrc, y=aConf, fill=Btw)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=aConf, group=Btw, color=SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_pointrange(data=p3.day.Asc.conf.g.all, aes(x = cSrc, y = aConf.M, ymin = aConf.M-aConf.ci, ymax = aConf.M+aConf.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Experimental", "Control")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Object List", y = "Confidence Rating (1-4)", fill ="Group") +
# ggtitle("Association Memory by Object List") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
ggpubr::ggarrange(p3.day.Asc.conf.all.plot.1, p3.day.Asc.conf.all.plot.2, ncol = 2,
labels=c("A) Association Confidence by Group","B) Association Confidence by List"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 물체 목록을 요인으로 하는 2 X 2 혼합 요인 분산분석을 수행하였다.
p3.day.Asc.conf.all.aov <- aov_ez(id = "SN", dv = "aConf", data = p3.day.Asc.conf.long.all, between = "Btw", within = c("cSrc"))
anova(p3.day.Asc.conf.all.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1 | 34 | 0.235 | 0.101 | 0.003 | 0.753 |
| cSrc | 1 | 34 | 0.023 | 2.677 | 0.073 | 0.111 |
| Btw:cSrc | 1 | 34 | 0.023 | 0.031 | 0.001 | 0.861 |
분석 결과, 모든 효과가 유의하지 않았다.
연합 기억 확신도가 집단과 출처 반응의 패턴에서 차이를 보이는지 분석하였다. 각 조건별로 연합 기억 확신도의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B, C는 각 집단을 나타내며, 빨간 점은 평균, 오차 막대는 95% 신뢰구간을 나타낸다.
# long Format
p3.AsyPtt.Asc.conf.long.all <- p3 %>% filter(cSrc != "List_3", Resp != "New", aCorr==1) %>% group_by(SN, Btw, cSrc, Resp) %>%
summarise(aConf = mean(aConf)) %>% ungroup()
p3.AsyPtt.Asc.conf.wide.all <- p3.AsyPtt.Asc.conf.long.all %>% spread(key = Resp, value = aConf)
p3.AsyPtt.Asc.conf.long.all <- gather(p3.AsyPtt.Asc.conf.wide.all, Resp, aConf, Day_1:Day_2, factor_key=TRUE)
p3.AsyPtt.Asc.conf.long.all[is.na(p3.AsyPtt.Asc.conf.long.all)] <- 0
p3.AsyPtt.Asc.conf.long.all <- arrange(p3.AsyPtt.Asc.conf.long.all, SN, cSrc, Resp, aConf)
p3.AsyPtt.Asc.conf.long.exp <- p3.AsyPtt.Asc.conf.long.all %>% filter(Btw==1)
p3.AsyPtt.Asc.conf.long.con <- p3.AsyPtt.Asc.conf.long.all %>% filter(Btw==2)
# wide format
p3.AsyPtt.Asc.conf.swide.all <- p3.AsyPtt.Asc.conf.long.all %>% spread(key = Resp, value = aConf)
p3.AsyPtt.Asc.conf.swide.exp <- p3.AsyPtt.Asc.conf.swide.all %>% filter(Btw==1)
p3.AsyPtt.Asc.conf.swide.con <- p3.AsyPtt.Asc.conf.swide.all %>% filter(Btw==2)
# summary
p3.AsyPtt.Asc.conf.g.all <- p3.AsyPtt.Asc.conf.long.all %>% group_by(Btw, cSrc, Resp) %>%
summarise(aConf.M = mean(aConf), aConf.SD = sd(aConf)) %>% ungroup()
p3.AsyPtt.Asc.conf.g.all$aConf.se <- Rmisc::summarySEwithin(data = p3.AsyPtt.Asc.conf.long.all, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = c("cSrc","Resp"))$se
p3.AsyPtt.Asc.conf.g.all$aConf.ci <- Rmisc::summarySEwithin(data = p3.AsyPtt.Asc.conf.long.all, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = c("cSrc","Resp"))$ci
p3.AsyPtt.Asc.conf.g.exp <- p3.AsyPtt.Asc.conf.g.all %>% filter(Btw==1)
p3.AsyPtt.Asc.conf.g.con <- p3.AsyPtt.Asc.conf.g.all %>% filter(Btw==2)
p3.AsyPtt.Asc.conf.g.table.all <- p3.AsyPtt.Asc.conf.g.all %>% unite(cSrc_Resp, cSrc:Resp, remove=TRUE) %>% rename(sResp = "cSrc_Resp")
p3.AsyPtt.Asc.conf.g.table.all$sResp[p3.AsyPtt.Asc.conf.g.table.all$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.Asc.conf.g.table.all$sResp[p3.AsyPtt.Asc.conf.g.table.all$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.Asc.conf.g.table.all$sResp[p3.AsyPtt.Asc.conf.g.table.all$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.Asc.conf.g.table.all$sResp[p3.AsyPtt.Asc.conf.g.table.all$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.Asc.conf.g.table.all %>% arrange(c(1,3,4,2,5,7,8,6)) %>% kable(digit=2)| Btw | sResp | aConf.M | aConf.SD | aConf.se | aConf.ci |
|---|---|---|---|---|---|
| 1 | List 1 Correct | 3.61 | 0.36 | 0.03 | 0.07 |
| 1 | List 2 Correct | 3.66 | 0.35 | 0.04 | 0.09 |
| 1 | Source Confusion | 3.54 | 0.42 | 0.06 | 0.14 |
| 1 | Intrusion | 3.62 | 0.36 | 0.04 | 0.08 |
| 2 | List 1 Correct | 3.58 | 0.31 | 0.03 | 0.07 |
| 2 | List 2 Correct | 3.64 | 0.29 | 0.04 | 0.08 |
| 2 | Source Confusion | 3.52 | 0.34 | 0.04 | 0.08 |
| 2 | Intrusion | 3.61 | 0.37 | 0.04 | 0.08 |
## plot
p3.Asc.conf.all.plot1 <- ggplot(data=p3.AsyPtt.Asc.conf.long.all, aes(x=Resp, y=aConf, fill=Btw)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.Asc.conf.g.all, aes(x = Resp, y = aConf.M, ymin = aConf.M-aConf.ci, ymax = aConf.M+aConf.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
facet_grid(.~cSrc, scales="free_x",
labeller = labeller(cSrc = c("List_1" = "List 1 (Day 1)","List_2" = "List 2 (Day 2)"))) +
scale_x_discrete(labels=c("Day 1","Day 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Source Response by Object List", y = "AM Confidence Rating (1-4)", fill ="Group") +
# ggtitle("Confidence Response") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position="top")
p3.Asc.conf.exp.plot1 <- ggplot(data=p3.AsyPtt.Asc.conf.long.exp, aes(x=cSrc, y=aConf, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=aConf, group=Resp, color = SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.Asc.conf.swide.exp,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1-.16, y=filter(p3.AsyPtt.Asc.conf.swide.exp,cSrc=="List_1")$"Day_1",
xend=1+.16, yend=filter(p3.AsyPtt.Asc.conf.swide.exp,cSrc=="List_1")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.Asc.conf.swide.exp,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2-.16, y=filter(p3.AsyPtt.Asc.conf.swide.exp,cSrc=="List_2")$"Day_1",
xend=2+.16, yend=filter(p3.AsyPtt.Asc.conf.swide.exp,cSrc=="List_2")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.AsyPtt.Asc.conf.g.exp, aes(x = cSrc, y = aConf.M, ymin = aConf.M-aConf.ci, ymax = aConf.M+aConf.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#56b4e9", "#e69f00"),
labels = c("Day 1", "Day 2")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Object List", y = "AM Confidence Rating (1 - 4)", fill ="Attribution") +
# ggtitle("List 1 AM Confidence of Correct SM (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
p3.Asc.conf.con.plot1 <- ggplot(data=p3.AsyPtt.Asc.conf.long.con, aes(x=cSrc, y=aConf, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
geom_point(position=position_dodge(0.65), aes(x=cSrc, y=aConf, group=Resp, color = SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.Asc.conf.swide.con,cSrc=="List_1"), inherit.aes = FALSE,
aes(x=1-.16, y=filter(p3.AsyPtt.Asc.conf.swide.con,cSrc=="List_1")$"Day_1",
xend=1+.16, yend=filter(p3.AsyPtt.Asc.conf.swide.con,cSrc=="List_1")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_segment(data=filter(p3.AsyPtt.Asc.conf.swide.con,cSrc=="List_2"), inherit.aes = FALSE,
aes(x=2-.16, y=filter(p3.AsyPtt.Asc.conf.swide.con,cSrc=="List_2")$"Day_1",
xend=2+.16, yend=filter(p3.AsyPtt.Asc.conf.swide.con,cSrc=="List_2")$"Day_2", color=SN),
size = 1, alpha = 0.3, show.legend = FALSE) +
geom_pointrange(data=p3.AsyPtt.Asc.conf.g.con, aes(x = cSrc, y = aConf.M, ymin = aConf.M-aConf.ci, ymax = aConf.M+aConf.ci),
position = position_dodge(0.65), color = "darkred", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#56b4e9", "#e69f00"),
labels = c("Day 1", "Day 2")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Object List", y = "AM Confidence Rating (1 - 4)", fill ="Attribution") +
# ggtitle("List 1 AM Confidence of Correct SM (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position="top")
ggpubr::ggarrange(p3.Asc.conf.all.plot1, labels = "A) All Group",
ggpubr::ggarrange(p3.Asc.conf.exp.plot1, p3.Asc.conf.con.plot1, ncol = 2,
labels = c("B) Experimental","C) Control"), hjust = -0.1, vjust=1, font.label = list(size = 16)
), nrow =2, hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 출처 반응을 요인으로 2 X 4 혼합 요인 분산분석을 수행하였다.
# List 1 & 2 Association Memory by Source Response
p3.AsyPtt.Asc.conf.long.all <- p3.AsyPtt.Asc.conf.long.all %>% unite(cSrc_Resp, cSrc:Resp, remove=TRUE) %>% rename(sResp = "cSrc_Resp")
p3.AsyPtt.Asc.conf.long.all$sResp[p3.AsyPtt.Asc.conf.long.all$sResp=='List_1_Day_1'] <- 'List 1 Correct'
p3.AsyPtt.Asc.conf.long.all$sResp[p3.AsyPtt.Asc.conf.long.all$sResp=='List_2_Day_2'] <- 'List 2 Correct'
p3.AsyPtt.Asc.conf.long.all$sResp[p3.AsyPtt.Asc.conf.long.all$sResp=='List_1_Day_2'] <- 'Source Confusion'
p3.AsyPtt.Asc.conf.long.all$sResp[p3.AsyPtt.Asc.conf.long.all$sResp=='List_2_Day_1'] <- 'Intrusion'
p3.AsyPtt.Asc.conf.long.allsResp <- factor(p3.AsyPtt.Asc.conf.long.all$sResp)
p3.AsyPtt.Asc.conf.all.1.aov <- aov_ez(id = "SN", dv = "aConf", data = p3.AsyPtt.Asc.conf.long.all, between = "Btw", within = "sResp")
anova(p3.AsyPtt.Asc.conf.all.1.aov, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.399 | 0.040 | 0.001 | 0.842 |
| sResp | 2.381 | 80.959 | 0.042 | 2.772 | 0.075 | 0.059 |
| Btw:sResp | 2.381 | 80.959 | 0.042 | 0.020 | 0.001 | 0.990 |
분석 결과, 모든 효과가 유의하지 않았다.
목록 1에서 집단과 예측 오류 조건에 따라 연합 기억 확신도가 다른지 살펴보았다. 각 조건의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 1 Association Memory Confidence
# long format
p3.Acc.Asc.conf.long.all.1 <- p3 %>% filter(cPE != "pe0", cSrc == "List_1", aCorr == 1) %>% group_by(SN, Btw, cPE) %>%
summarise(aConf = mean(aConf)) %>% ungroup()
p3.Acc.Asc.conf.long.exp.1 <- p3.Acc.Asc.conf.long.all.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.long.con.1 <- p3.Acc.Asc.conf.long.all.1 %>% filter(Btw==2)
# wide format
p3.Acc.Asc.conf.swide.all.1 <- p3.Acc.Asc.conf.long.all.1 %>% spread(key = cPE, value = aConf)
p3.Acc.Asc.conf.swide.exp.1 <- p3.Acc.Asc.conf.swide.all.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.swide.con.1 <- p3.Acc.Asc.conf.swide.all.1 %>% filter(Btw==2)
# summary
p3.Acc.Asc.conf.g.all.1 <- p3.Acc.Asc.conf.long.all.1 %>% group_by(Btw, cPE) %>%
summarise(aConf.M = mean(aConf), aConf.SD = sd(aConf)) %>% ungroup()
p3.Acc.Asc.conf.g.all.1$aConf.se <- Rmisc::summarySEwithin(data = p3.Acc.Asc.conf.long.all.1, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.Asc.conf.g.all.1$aConf.ci <- Rmisc::summarySEwithin(data = p3.Acc.Asc.conf.long.all.1, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.Asc.conf.g.exp.1 <- p3.Acc.Asc.conf.g.all.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.g.con.1 <- p3.Acc.Asc.conf.g.all.1 %>% filter(Btw==2)
p3.Acc.Asc.conf.g.all.1 %>% kable(digit=2)| Btw | cPE | aConf.M | aConf.SD | aConf.se | aConf.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 3.58 | 0.41 | 0.03 | 0.06 |
| 1 | pe2 | 3.63 | 0.34 | 0.04 | 0.09 |
| 1 | pe3 | 3.60 | 0.36 | 0.03 | 0.07 |
| 2 | pe1 | 3.58 | 0.39 | 0.04 | 0.09 |
| 2 | pe2 | 3.54 | 0.36 | 0.06 | 0.12 |
| 2 | pe3 | 3.58 | 0.33 | 0.05 | 0.10 |
## plot
p3.Asc.conf.all.plot2.2.1 <- ggplot(p3.Acc.Asc.conf.g.all.1, mapping=aes(x=cPE, y=aConf.M, group=Btw)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.Asc.conf.g.all.1, mapping = aes(x=cPE, y=aConf.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "AM Confidence Rating (1-4)", fill = "Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.Asc.conf.exp.plot2.2.1 <- ggplot(p3.Acc.Asc.conf.g.exp.1, mapping=aes(x=cPE, y=aConf.M, group=1)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.conf.long.exp.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aConf, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.conf.long.exp.1, mapping = aes(x=cPE, y=aConf, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "AM Confidence Rating (1-4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.Asc.conf.con.plot2.2.1 <- ggplot(p3.Acc.Asc.conf.g.con.1, mapping=aes(x=cPE, y=aConf.M, group=1)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.conf.long.con.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aConf, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.conf.long.con.1, mapping = aes(x=cPE, y=aConf, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "AM Confidence Rating (1-4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.Asc.conf.all.plot2.2.1, p3.Asc.conf.exp.plot2.2.1, p3.Asc.conf.con.plot2.2.1, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 2 X 3 혼합 요인 분산 분석을 수행하였다.
p3.Acc.all.aov.Asc.conf.1 <- aov_ez(id = "SN", dv = "aConf", data = p3.Acc.Asc.conf.long.all.1, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.Asc.conf.1, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.324 | 0.095 | 0.003 | 0.760 |
| cPE | 1.726 | 58.697 | 0.044 | 0.008 | 0.000 | 0.985 |
| Btw:cPE | 1.726 | 58.697 | 0.044 | 0.642 | 0.019 | 0.508 |
모든 효과가 유의하지 않았다.
목록 2에서 집단과 예측 오류 조건에 따라 연합 기억 확신도가 다른지 살펴보았다. 각 조건의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 2 Association Memory Confidence
# long format
p3.Acc.Asc.conf.long.all.2 <- p3 %>% filter(cPE != "pe0", cSrc == "List_2", aCorr == 1) %>% group_by(SN, Btw, cPE) %>%
summarise(aConf = mean(aConf)) %>% ungroup()
p3.Acc.Asc.conf.long.exp.2 <- p3.Acc.Asc.conf.long.all.2 %>% filter(Btw==1)
p3.Acc.Asc.conf.long.con.2 <- p3.Acc.Asc.conf.long.all.2 %>% filter(Btw==2)
# wide format
p3.Acc.Asc.conf.swide.all.2 <- p3.Acc.Asc.conf.long.all.2 %>% spread(key = cPE, value = aConf)
p3.Acc.Asc.conf.swide.exp.2 <- p3.Acc.Asc.conf.swide.all.2 %>% filter(Btw==1)
p3.Acc.Asc.conf.swide.con.2 <- p3.Acc.Asc.conf.swide.all.2 %>% filter(Btw==2)
# summary
p3.Acc.Asc.conf.g.all.2 <- p3.Acc.Asc.conf.long.all.2 %>% group_by(Btw, cPE) %>%
summarise(aConf.M = mean(aConf), aConf.SD = sd(aConf)) %>% ungroup()
p3.Acc.Asc.conf.g.all.2$aConf.se <- Rmisc::summarySEwithin(data = p3.Acc.Asc.conf.long.all.2, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.Asc.conf.g.all.2$aConf.ci <- Rmisc::summarySEwithin(data = p3.Acc.Asc.conf.long.all.2, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.Asc.conf.g.exp.2 <- p3.Acc.Asc.conf.g.all.2 %>% filter(Btw==1)
p3.Acc.Asc.conf.g.con.2 <- p3.Acc.Asc.conf.g.all.2 %>% filter(Btw==2)
p3.Acc.Asc.conf.g.all.2 %>% kable(digit=2)| Btw | cPE | aConf.M | aConf.SD | aConf.se | aConf.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 3.62 | 0.37 | 0.02 | 0.05 |
| 1 | pe2 | 3.64 | 0.40 | 0.03 | 0.06 |
| 1 | pe3 | 3.67 | 0.31 | 0.03 | 0.06 |
| 2 | pe1 | 3.61 | 0.38 | 0.03 | 0.07 |
| 2 | pe2 | 3.64 | 0.28 | 0.03 | 0.06 |
| 2 | pe3 | 3.65 | 0.33 | 0.03 | 0.06 |
## plot
p3.Asc.conf.all.plot2.2.2 <- ggplot(p3.Acc.Asc.conf.g.all.2, mapping=aes(x=cPE, y=aConf.M, group=Btw)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.Asc.conf.g.all.2, mapping = aes(x=cPE, y=aConf.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "AM Confidence Rating (1-4)", fill = "Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.Asc.conf.exp.plot2.2.2 <- ggplot(p3.Acc.Asc.conf.g.exp.2, mapping=aes(x=cPE, y=aConf.M, group=1)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.conf.long.exp.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aConf, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.conf.long.exp.2, mapping = aes(x=cPE, y=aConf, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "AM Confidence Rating (1-4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.Asc.conf.con.plot2.2.2 <- ggplot(p3.Acc.Asc.conf.g.con.2, mapping=aes(x=cPE, y=aConf.M, group=1)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.conf.long.con.2, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aConf, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.conf.long.con.2, mapping = aes(x=cPE, y=aConf, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "AM Confidence Rating (1-4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM of Correct Source (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.Asc.conf.all.plot2.2.2, p3.Asc.conf.exp.plot2.2.2, p3.Asc.conf.con.plot2.2.2, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 2 X 3 혼합 요인 분산 분석을 수행하였다.
p3.Acc.all.aov.Asc.conf.2 <- aov_ez(id = "SN", dv = "aConf", data = p3.Acc.Asc.conf.long.all.2, between = "Btw", within = "cPE")
anova(p3.Acc.all.aov.Asc.conf.2, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.329 | 0.021 | 0.001 | 0.885 |
| cPE | 1.992 | 67.716 | 0.017 | 0.993 | 0.028 | 0.375 |
| Btw:cPE | 1.992 | 67.716 | 0.017 | 0.040 | 0.001 | 0.960 |
모든 효과가 유의하지 않았다.
집단, 예측 오류 조건에 따른 연합 기억 확신도가 출처 반응의 유형에 따라 다른지 살펴보기 위한 분석을 수행하였다. 각 출처 반응을 예측 오류 조건으로 구분하였을 때 시행수가 충분하지 않은 경우에는 연합 기억 정확도의 평균이 대표성을 가지지 못할 수 있다. 따라서 각 출처 반응에서의 시행수를 확인하였다.
# The number of trials per condition
p3 %>% filter(cSrc!="List_3", Resp!="New", aCorr==1) %>%
group_by(SN, cSrc, Resp, cPE) %>%
summarise(NumTrial = length(aCorr)) %>%
ungroup %>%
group_by(cSrc, Resp, cPE) %>%
summarise(Avg = mean(NumTrial),
Med = median(NumTrial),
Min = min(NumTrial),
Max = max(NumTrial)) %>%
ungroup %>% kable(digit=4)| cSrc | Resp | cPE | Avg | Med | Min | Max |
|---|---|---|---|---|---|---|
| List_1 | Day_1 | pe1 | 18.4444 | 18.0 | 9 | 29 |
| List_1 | Day_1 | pe2 | 19.8333 | 20.0 | 8 | 26 |
| List_1 | Day_1 | pe3 | 19.5833 | 19.5 | 12 | 28 |
| List_1 | Day_2 | pe1 | 6.4857 | 7.0 | 1 | 16 |
| List_1 | Day_2 | pe2 | 5.2000 | 5.0 | 1 | 14 |
| List_1 | Day_2 | pe3 | 4.9444 | 4.5 | 1 | 11 |
| List_2 | Day_1 | pe1 | 6.5556 | 6.0 | 1 | 15 |
| List_2 | Day_1 | pe2 | 7.6944 | 8.0 | 2 | 17 |
| List_2 | Day_1 | pe3 | 7.9167 | 7.5 | 1 | 16 |
| List_2 | Day_2 | pe1 | 19.3889 | 19.5 | 10 | 28 |
| List_2 | Day_2 | pe2 | 17.9722 | 17.5 | 11 | 27 |
| List_2 | Day_2 | pe3 | 18.0556 | 18.0 | 6 | 28 |
각 출처 반응의 시행수에서 Source Confusion (L1>D2), Intrusion (L2>D1)은 평균 시행수가 10시행에 미치지 못하므로 분석에서 제외하였다. 따라서 출처 반응의 종속 변인 중 List 1 Correct (L1>D1), List 2 Correct (L2>D2)에서 집단과 예측 오류 조건에 따른 차이를 비교하였다.
List 1 Correct (L1>D1) 출처 반응에서 집단과 예측 오류 조건에 따라 연합 기억 확신도 수준이 다른지 살펴보았다. 각 조건의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 1 AM Confidence of Correct Source Response
# long format
p3.Acc.Asc.conf.long.all.1.1 <- p3 %>% filter(cSrc == "List_1", cPE != "pe0", Correct == 1, aCorr == 1) %>%
group_by(SN, Btw, cPE) %>%
summarise(aConf = mean(aConf)) %>% ungroup()
p3.Acc.Asc.conf.long.exp.1.1<- p3.Acc.Asc.conf.long.all.1.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.long.con.1.1 <- p3.Acc.Asc.conf.long.all.1.1 %>% filter(Btw==2)
# wide format
p3.Acc.Asc.conf.swide.all.1.1 <- p3.Acc.Asc.conf.long.all.1.1 %>% spread(key = cPE, value = aConf)
p3.Acc.Asc.conf.swide.exp.1.1 <- p3.Acc.Asc.conf.swide.all.1.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.swide.con.1.1 <- p3.Acc.Asc.conf.swide.all.1.1 %>% filter(Btw==2)
# summary
p3.Acc.Asc.conf.g.all.1.1 <- p3.Acc.Asc.conf.long.all.1.1 %>% group_by(Btw, cPE) %>%
summarise(aConf.M = mean(aConf), aConf.SD = sd(aConf)) %>% ungroup()
p3.Acc.Asc.conf.g.all.1.1$aConf.se <- Rmisc::summarySEwithin(data = p3.Acc.Asc.conf.long.all.1.1, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.Asc.conf.g.all.1.1$aConf.ci <- Rmisc::summarySEwithin(data = p3.Acc.Asc.conf.long.all.1.1, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.Asc.conf.g.exp.1.1 <- p3.Acc.Asc.conf.g.all.1.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.g.con.1.1 <- p3.Acc.Asc.conf.g.all.1.1 %>% filter(Btw==2)
p3.Acc.Asc.conf.g.all.1.1 %>% kable(digit=2)| Btw | cPE | aConf.M | aConf.SD | aConf.se | aConf.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 3.58 | 0.43 | 0.03 | 0.07 |
| 1 | pe2 | 3.65 | 0.38 | 0.05 | 0.10 |
| 1 | pe3 | 3.60 | 0.39 | 0.04 | 0.08 |
| 2 | pe1 | 3.58 | 0.40 | 0.04 | 0.09 |
| 2 | pe2 | 3.56 | 0.40 | 0.07 | 0.14 |
| 2 | pe3 | 3.60 | 0.32 | 0.06 | 0.12 |
## plot
p3.Asc.conf.all.plot2.2.1.1 <- ggplot(p3.Acc.Asc.conf.g.all.1.1, mapping=aes(x=cPE, y=aConf.M, group=Btw)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.Asc.conf.g.all.1.1, mapping = aes(x=cPE, y=aConf.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "AM Confidence Rating (1-4)", fill = "Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.Asc.conf.exp.plot2.2.1.1 <- ggplot(p3.Acc.Asc.conf.g.exp.1.1, mapping=aes(x=cPE, y=aConf.M, group=1)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.conf.long.exp.1.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aConf, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.conf.long.exp.1.1, mapping = aes(x=cPE, y=aConf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Association Confidence (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM Confidence of Correct SM (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.Asc.conf.con.plot2.2.1.1 <- ggplot(p3.Acc.Asc.conf.g.con.1.1, mapping=aes(x=cPE, y=aConf.M, group=1)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.conf.long.con.1.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aConf, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.conf.long.con.1.1, mapping = aes(x=cPE, y=aConf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Association Confidence (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM Confidence of Correct SM (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.Asc.conf.all.plot2.2.1.1, p3.Asc.conf.exp.plot2.2.1.1, p3.Asc.conf.con.plot2.2.1.1, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 하는 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.Asc.all.aov.conf.1.1 <- aov_ez(id = "SN", dv = "aConf", data = p3.Acc.Asc.conf.long.all.1.1, between = "Btw", within = "cPE")
anova(p3.Acc.Asc.all.aov.conf.1.1, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.352 | 0.065 | 0.002 | 0.800 |
| cPE | 1.659 | 56.403 | 0.058 | 0.125 | 0.004 | 0.845 |
| Btw:cPE | 1.659 | 56.403 | 0.058 | 0.618 | 0.018 | 0.514 |
분석 결과, 모든 효과가 유의하지 않았다.
List 2 Correct (L1>D1) 출처 반응에서 집단과 예측 오류 조건에 따라 연합 기억 확신도 수준이 다른지 살펴보았다. 각 조건의 평균과 표준편차를 계산하였다. 아래의 그래프에서 A는 전체 집단, B는 실험 집단, C는 통제 집단을 나타내며, 빨간 점은 평균, 빨간 리본은 95% 신뢰구간을 나타낸다.
## List 2 AM Confidence of Correct Source Response
# long format
p3.Acc.Asc.conf.long.all.2.1 <- p3 %>% filter(cSrc == "List_2", cPE != "pe0", Correct == 1, aCorr == 1) %>%
group_by(SN, Btw, cPE) %>%
summarise(aConf = mean(aConf)) %>% ungroup()
p3.Acc.Asc.conf.long.exp.2.1<- p3.Acc.Asc.conf.long.all.2.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.long.con.2.1 <- p3.Acc.Asc.conf.long.all.2.1 %>% filter(Btw==2)
# wide format
p3.Acc.Asc.conf.swide.all.2.1 <- p3.Acc.Asc.conf.long.all.2.1 %>% spread(key = cPE, value = aConf)
p3.Acc.Asc.conf.swide.exp.2.1 <- p3.Acc.Asc.conf.swide.all.2.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.swide.con.2.1 <- p3.Acc.Asc.conf.swide.all.2.1 %>% filter(Btw==2)
# summary
p3.Acc.Asc.conf.g.all.2.1 <- p3.Acc.Asc.conf.long.all.2.1 %>% group_by(Btw, cPE) %>%
summarise(aConf.M = mean(aConf), aConf.SD = sd(aConf)) %>% ungroup()
p3.Acc.Asc.conf.g.all.2.1$aConf.se <- Rmisc::summarySEwithin(data = p3.Acc.Asc.conf.long.all.2.1, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$se
p3.Acc.Asc.conf.g.all.2.1$aConf.ci <- Rmisc::summarySEwithin(data = p3.Acc.Asc.conf.long.all.2.1, measurevar = "aConf",
idvar = "SN", betweenvars = "Btw", withinvars = "cPE")$ci
p3.Acc.Asc.conf.g.exp.2.1 <- p3.Acc.Asc.conf.g.all.2.1 %>% filter(Btw==1)
p3.Acc.Asc.conf.g.con.2.1 <- p3.Acc.Asc.conf.g.all.2.1 %>% filter(Btw==2)
p3.Acc.Asc.conf.g.all.2.1 %>% kable(digit=2)| Btw | cPE | aConf.M | aConf.SD | aConf.se | aConf.ci |
|---|---|---|---|---|---|
| 1 | pe1 | 3.65 | 0.37 | 0.03 | 0.06 |
| 1 | pe2 | 3.64 | 0.44 | 0.04 | 0.08 |
| 1 | pe3 | 3.71 | 0.29 | 0.04 | 0.09 |
| 2 | pe1 | 3.60 | 0.37 | 0.03 | 0.07 |
| 2 | pe2 | 3.67 | 0.26 | 0.03 | 0.07 |
| 2 | pe3 | 3.66 | 0.31 | 0.04 | 0.08 |
## plot
p3.Asc.conf.all.plot2.2.2.1 <- ggplot(p3.Acc.Asc.conf.g.all.2.1, mapping=aes(x=cPE, y=aConf.M, group=Btw)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci, fill=Btw), alpha=0.3) +
geom_line(p3.Acc.Asc.conf.g.all.2.1, mapping = aes(x=cPE, y=aConf.M, color = Btw), size = 1, show.legend = FALSE) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M, color=Btw), position = position_dodge(0),
size = 0.8, show.legend = FALSE) +
scale_fill_manual(values = c("#e69f00", "#56b4e9"), labels = c("Experimental", "Control")) +
scale_color_manual(values = c("#e69f00", "#56b4e9")) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "AM Confidence Rating (1-4)", fill = "Group") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 Correct SM (L1>D1; Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position = "top")
p3.Asc.conf.exp.plot2.2.2.1 <- ggplot(p3.Acc.Asc.conf.g.exp.2.1, mapping=aes(x=cPE, y=aConf.M, group=1)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.conf.long.exp.2.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aConf, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.conf.long.exp.2.1, mapping = aes(x=cPE, y=aConf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Association Confidence (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM Confidence of Correct SM (Exp)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
p3.Asc.conf.con.plot2.2.2.1 <- ggplot(p3.Acc.Asc.conf.g.con.2.1, mapping=aes(x=cPE, y=aConf.M, group=1)) +
geom_ribbon(aes(ymin=aConf.M-aConf.ci, ymax=aConf.M+aConf.ci), fill="darkred", alpha=0.3) + geom_line(colour="darkred", size = 1) +
geom_pointrange(aes(x = cPE, ymin=aConf.M, ymax=aConf.M), position = position_dodge(0.65),
color = "darkred", size = 0.8, show.legend = FALSE) +
geom_line(p3.Acc.Asc.conf.long.con.2.1, alpha = 0.7, show.legend = FALSE,
mapping=aes(x=cPE, y=aConf, group=SN, color=SN)) +
geom_point(p3.Acc.Asc.conf.long.con.2.1, mapping = aes(x=cPE, y=aConf, group=SN, color=SN), size = 3, alpha = .22, show.legend = FALSE) +
coord_cartesian(ylim = c(1, 4), clip = "on") +
labs(x = "Prediction Error", y = "Association Confidence (1 - 4)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# ggtitle("List 1 AM Confidence of Correct SM (Con)") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(2, 0.3, 0.3, 0.3, "cm"))
ggpubr::ggarrange(p3.Asc.conf.all.plot2.2.2.1, p3.Asc.conf.exp.plot2.2.2.1, p3.Asc.conf.con.plot2.2.2.1, ncol=3,
labels=c("A) All Group", "B) Experimental", "C) Control"),
hjust = -0.1, vjust=1, font.label = list(size = 16))집단과 예측 오류 조건을 요인으로 하는 2 X 3 혼합 요인 분산분석을 수행하였다.
p3.Acc.Asc.all.aov.conf.2.1 <- aov_ez(id = "SN", dv = "aConf", data = p3.Acc.Asc.conf.long.all.2.1, between = "Btw", within = "cPE")
anova(p3.Acc.Asc.all.aov.conf.2.1, es = "pes") %>% kable(digits = 3)| num Df | den Df | MSE | F | pes | Pr(>F) | |
|---|---|---|---|---|---|---|
| Btw | 1.000 | 34.000 | 0.309 | 0.033 | 0.001 | 0.856 |
| cPE | 1.879 | 63.888 | 0.028 | 1.240 | 0.035 | 0.295 |
| Btw:cPE | 1.879 | 63.888 | 0.028 | 0.618 | 0.018 | 0.533 |
분석 결과, 모든 효과가 유의하지 않았다.
save(list=ls(), file="memudet_data.Rdata")p12.L.g.L1 <- p12.L.g.all %>% filter(List == "List1")
p12.L.g.L1$Btw <- factor(p12.L.g.L1$Btw, labels=c("Experimental", "Control"))
p12.L.g.L1.plot1 <- ggplot(data=p12.L.g.L1,
aes(x=Block, y=ACC.M, ymin=ACC.M-ci, ymax=ACC.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(20,100), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Accuracy (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.35),
legend.title = element_blank(),
aspect.ratio = 0.6,
legend.background = element_blank(),
plot.margin = margin(1, 1, 0.3, 1, "cm"),
legend.key = element_blank())
p12.L.g.L2 <- p12.L.g.all %>% filter(List == "List2")
p12.L.g.L2$Btw <- factor(p12.L.g.L2$Btw, labels=c("Experimental", "Control"))
p12.L.g.L2.plot1 <- ggplot(data=p12.L.g.L2,
aes(x=Block, y=ACC.M, ymin=ACC.M-ci, ymax=ACC.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(20,100), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Accuracy (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.35),
legend.title = element_blank(),
aspect.ratio = 0.6,
legend.background = element_blank(),
plot.margin = margin(1, 1, 0.3, 1, "cm"),
legend.key = element_blank())
p12.L.rt.g.L1 <- p12.L.rt.g.all %>% filter(List == "List1")
p12.L.rt.g.L1$Btw <- factor(p12.L.g.L1$Btw, labels=c("Experimental", "Control"))
p12.L.rt.g.L1.plot1 <- ggplot(data=p12.L.rt.g.L1 ,
aes(x=Block, y=RT.M, ymin=RT.M-ci, ymax=RT.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,1800), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Response Time (ms)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.85),
legend.title = element_blank(),
aspect.ratio = 0.6,
legend.background = element_blank(),
plot.margin = margin(0.3, 1, 0.3, 1, "cm"),
legend.key = element_blank())
p12.L.rt.g.L2 <- p12.L.rt.g.all %>% filter(List == "List2")
p12.L.rt.g.L2$Btw <- factor(p12.L.g.L2$Btw, labels=c("Experimental", "Control"))
p12.L.rt.g.L2.plot1 <- ggplot(data=p12.L.rt.g.L2 ,
aes(x=Block, y=RT.M, ymin=RT.M-ci, ymax=RT.M+ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,1800), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("1", "2", "3", "4")) +
labs(x = "Block", y = "Response Time (ms)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.65, 0.85),
legend.title = element_blank(),
aspect.ratio = 0.6,
legend.background = element_blank(),
plot.margin = margin(0.3, 1, 0.3, 1, "cm"),
legend.key = element_blank())
d1_d2_asc_all2_Main<- ggpubr::ggarrange(p12.L.g.L1.plot1, p12.L.g.L2.plot1, p12.L.rt.g.L1.plot1, p12.L.rt.g.L2.plot1, nrow = 2, ncol=2,
labels=c("A. List 1","B. List 2"," "," "),
hjust = -0.05, vjust=1, font.label = list(size = 20))
d1_d2_asc_all2_Main# ggsave("d1&d2_asc_all_Main.jpg", plot = d1_d2_asc_all2_Main, width=12, height=9, unit='in', dpi=600)p3.AsyPtt.long.all.p2 <- p3.AsyPtt.long.all %>% filter(cSrc != "List_3", Resp != "New")
p3.AsyPtt.g.all.p2 <- p3.AsyPtt.g.all %>% filter(cSrc != "List_3", Resp != "New")
p3.all.plot3.pilot <- ggplot(data=p3.AsyPtt.long.all.p2, aes(x=cSrc, y=Rsp, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.g.all.p2, aes(x = cSrc, y=Rsp.M, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
# geom_point(data=p3.AsyPtt.g.all.p2, aes(x = cSrc, y=Rsp.M),
# position = position_dodge(0.80), color = "black", size = 5, show.legend = FALSE) +
# geom_errorbar(data=p3.AsyPtt.g.all.p2, aes(x=cSrc, ymin = Rsp.M-Rsp.ci, ymax = Rsp.M+Rsp.ci), size = 1, width = .2, position = position_dodge(0.8)) +
facet_grid(.~Btw, scales="free_x", space = "free",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
# scale_fill_manual(values = c("#a3d8d7", "#ed9b5d"),#a3d8d7 #72c2c8
# scale_fill_manual(values = c("#feb24c", "#4292c6"),
# scale_fill_manual(values = c("#c6d9f1", "#254061"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(0, 105), clip = "on") +
labs(x = "Source Response by Object List", y = "Proportion of Response (%)", fill ="Attribution") +
# ggtitle("Source Memory Response") +
theme_bw(base_size = 18) +
theme(axis.line=element_line(),
# axis.title = element_text(face = "bold", size = 16, color = "black"),
# axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
# strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position=c(0.8, 0.85),
legend.title = element_text(size=18),
legend.text = element_text(size=18))
p3.all.plot3.pilot# ggsave("d3_Src_asyptt_all_pilot3.jpg", plot = p3.all.plot3.pilot, width=6, height=6, unit='in', dpi=600)p3.conf.all.plot1 <- ggplot(data=p3.AsyPtt.conf.long.all, aes(x=cSrc, y=Conf, fill=Resp)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .9, width = 0.8, colour="black", size = 1.02) +
geom_pointrange(data=p3.AsyPtt.conf.g.all, aes(x = cSrc, y = Conf.M, ymin = Conf.M-Conf.ci, ymax = Conf.M+Conf.ci),
position = position_dodge(0.80), color = "darkred", size = 1, show.legend = FALSE) +
facet_grid(.~Btw, scales="free_x",
labeller = labeller(Btw = c("1" = "Experimental Group","2" = "Control Group"))) +
scale_x_discrete(labels=c("List 1","List 2")) +
scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Day 1 Response", "Day 2 Response")) +
coord_cartesian(ylim = c(1, 4.5), clip = "on") +
labs(x = "Source Response by Object List", y = "Confidence Rating (1-4)", fill ="Attribution") +
# ggtitle("Confidence Response") +
theme_bw(base_size = 18) +
theme(axis.line=element_line(),
# axis.title = element_text(face = "bold", size = 16, color = "black"),
# axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
# strip.text.x = element_text(face = "plain", size = 15, color = "black"),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.spacing=unit(1, "lines"),
plot.margin = margin(1, 0.3, 1, 0.3, "cm"),
# plot.title = element_text(hjust = 0.5),
legend.position=c(0.8,0.85),
legend.title = element_text(size=18),
legend.text = element_text(size=18))
p3.conf.all.plot1# ggsave("d3_sConf_asyptt_all_main1.jpg", plot = p3.conf.all.plot1, width=6, height=6, unit='in', dpi=600)# Intrusion
p3.Intru.g.all.p3 <- p3.Intru.g.all
p3.Intru.g.all.p3$Btw <- factor(p3.Intru.g.all.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.1.all.p3.main <- ggplot(data=p3.Intru.g.all.p3,
aes(x=cPE, y=Intru.M, ymin=Intru.M-Intru.ci, ymax=Intru.M+Intru.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,70), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
labs(x = "Prediction Error", y = "Intrusion (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.85),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
p3.plot2.1.all.p3.main# ggsave("d3_Src_nmon_int_main2.jpg", plot = p3.plot2.1.all.p3.main, width=6, height=6, unit='in', dpi=600)p3.Acc.g.all.1.p3 <- p3.Acc.g.all.1
p3.Acc.g.all.1.p3$Btw <- factor(p3.Acc.g.all.1.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.2.all.1.p3 <- ggplot(data=p3.Acc.g.all.1.p3,
aes(x=cPE, y=Acc.M, ymin=Acc.M-Acc.ci, ymax=Acc.M+Acc.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(40,100), clip = "on") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# scale_y_continuous(breaks = seq(0,80)) +
labs(x = "Prediction Error", y = "List 1 Correct (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.25),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 0.5, 0.3, 0.5, "cm"),
legend.key = element_blank())
p3.plot2.2.all.1.p3# source confusion
p3.Err.g.all.p3 <- p3.Err.g.all
p3.Err.g.all.p3$Btw <- factor(p3.Err.g.all.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.3.all.1.p3 <- ggplot(data=p3.Err.g.all.p3,
aes(x=cPE, y=Err.M, ymin=Err.M-Err.ci, ymax=Err.M+Err.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,70), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
labs(x = "Prediction Error", y = "Source Confusion (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.85),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 0.5, 0.3, 0.5, "cm"),
legend.key = element_blank())
p3.plot2.3.all.1.p3# List 2 Correct
p3.Acc.g.all.2.p3 <- p3.Acc.g.all.2
p3.Acc.g.all.2.p3$Btw <- factor(p3.Acc.g.all.2.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.2.all.2.p3 <- ggplot(data=p3.Acc.g.all.2.p3,
aes(x=cPE, y=Acc.M, ymin=Acc.M-Acc.ci, ymax=Acc.M+Acc.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(40,100), clip = "on") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
# scale_y_continuous(breaks = seq(0,80)) +
labs(x = "Prediction Error", y = "List 2 Correct (%)") +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.25),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 0.5, 0.3, 0.5, "cm"),
legend.key = element_blank())
# p3.plot2.2.all.2.p3
# Intrusion
p3.Intru.g.all.p3 <- p3.Intru.g.all
p3.Intru.g.all.p3$Btw <- factor(p3.Intru.g.all.p3$Btw, labels=c("Experimental", "Control"))
p3.plot2.1.all.p3 <- ggplot(data=p3.Intru.g.all.p3,
aes(x=cPE, y=Intru.M, ymin=Intru.M-Intru.ci, ymax=Intru.M+Intru.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(0,70), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
labs(x = "Prediction Error", y = "Intrusion (%)") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.85),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 0.5, 0.3, 0.5, "cm"),
legend.key = element_blank())
# p3.plot2.1.all.p3
d3_nmon_src<- ggpubr::ggarrange(p3.plot2.2.all.1.p3, p3.plot2.2.all.2.p3, p3.plot2.3.all.1.p3, p3.plot2.1.all.p3, nrow = 2, ncol=2,
labels=c("A","B","C","D"),
hjust = -0.05, vjust=1, font.label = list(size = 20))
d3_nmon_src# ggsave("d3_Src_nmon_all_main3.jpg", plot = d3_nmon_src, width=12, height=12, unit='in', dpi=600)p3.US.g.all.p3 <- p3.US.g.all
p3.US.g.all.p3$Btw <- factor(p3.US.g.all.p3$Btw, labels=c("Experimental", "Control"))
p3.plot5.1.all.p3 <- ggplot(data=p3.US.g.all.p3,
aes(x=cPE, y=US.M, ymin=US.M-US.ci, ymax=US.M+US.ci, color=Btw, shape=Btw)) +
geom_point(size = 4, position = position_dodge(.3)) +
geom_errorbar(width = .2, position = position_dodge(.3)) +
geom_line(aes(group = Btw), position = position_dodge(.3)) +
scale_color_manual(values = c("red", "black")) +
# scale_shape_manual(values = c("red", "black"), labels = c("Experimental", "Control")) +
coord_cartesian(ylim = c(-50,50), clip = "on") +
# scale_y_continuous(breaks = seq(0,80)) +
labs(x = "Prediction Error", y = "Updating Score") +
scale_x_discrete(labels = c("PE 1", "PE 2", "PE 3")) +
theme_bw(base_size = 18) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(0.75, 0.20),
legend.title = element_blank(),
aspect.ratio = 1,
legend.background = element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.key = element_blank())
p3.plot5.1.all.p3# ggsave("d3_Src_nmon_US_main3.jpg", plot = p3.plot5.1.all.p3, width=6, height=6, unit='in', dpi=600)p3.day.Asc.all.plot.2 <- ggplot(data=p3.day.Asc.long.all, aes(x=cSrc, y=aCorr, fill=Btw)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
# geom_point(position=position_dodge(0.65), aes(x=cSrc, y=aCorr, group=Btw, color=SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_pointrange(data=p3.day.Asc.g.all, aes(x = cSrc, y = aCorr.M, ymin = aCorr.M-aCorr.ci, ymax = aCorr.M+aCorr.ci),
position = position_dodge(0.65), color = "black", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#c6d9f1", "#254061"),
# scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Experimental", "Control")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(40, 105), clip = "on") +
labs(x = "Object List", y = "Accuracy (%)", fill ="Group") +
# ggtitle("Association Memory by Object List") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position=c(0.80,0.90))
p3.day.Asc.all.plot.2# ggsave("d3_asc_all.jpg", plot = p3.day.Asc.all.plot.2, width=6, height=6, unit='in', dpi=600)p3.day.Asc.conf.all.plot.2 <- ggplot(data=p3.day.Asc.conf.long.all, aes(x=cSrc, y=aConf, fill=Btw)) +
stat_summary(fun = mean, geom = "bar", position="dodge", na.rm = TRUE, alpha = .7, width = .65, colour="black", size = 1.02) +
# geom_point(position=position_dodge(0.65), aes(x=cSrc, y=aConf, group=Btw, color=SN), size = 3, alpha = .4, show.legend = FALSE) +
geom_pointrange(data=p3.day.Asc.conf.g.all, aes(x = cSrc, y = aConf.M, ymin = aConf.M-aConf.ci, ymax = aConf.M+aConf.ci),
position = position_dodge(0.65), color = "black", size = 1, show.legend = FALSE) +
scale_fill_manual(values = c("#c6d9f1", "#254061"),
# scale_fill_manual(values = c("#feb24c", "#91bfdb"),
labels = c("Experimental", "Control")) +
scale_x_discrete(labels = c("List 1", "List 2")) +
coord_cartesian(ylim = c(1, 4.5), clip = "on") +
labs(x = "Object List", y = "Confidence Rating (1-4)", fill ="Group") +
# ggtitle("Association Memory by Object List") +
theme_bw(base_size = 15) +
theme(axis.title = element_text(face = "bold", size = 16, color = "black"),
axis.text = element_text(face = "plain", hjust = 0.5, size = 15, color = "black"),
axis.line=element_line(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border=element_blank(),
plot.margin = margin(1, 0.3, 0.3, 0.3, "cm"),
legend.position=c(.8,.9))
p3.day.Asc.conf.all.plot.2# ggsave("d3_asc_conf_all.jpg", plot = p3.day.Asc.conf.all.plot.2, width=6, height=6, unit='in', dpi=600)sessionInfo()## R version 4.1.1 (2021-08-10)
## Platform: aarch64-apple-darwin20 (64-bit)
## Running under: macOS Monterey 12.1
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] parallel stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] klippy_0.0.0.9500 patchwork_1.1.0.9000 ggpubr_0.4.0
## [4] psycho_0.6.1 nortest_1.0-4 rcompanion_2.4.13
## [7] matlab_1.0.2 scales_1.1.1 apaTables_2.0.8
## [10] RVAideMemoire_0.9-81 ggbeeswarm_0.6.0 MuMIn_1.43.17
## [13] gridExtra_2.3 psych_2.1.9 ordinal_2019.12-10
## [16] emmeans_1.6.3 afex_1.0-1 lme4_1.1-27.1
## [19] Matrix_1.3-4 car_3.0-11 carData_3.0-4
## [22] knitr_1.34 papaja_0.1.0.9997 forcats_0.5.1
## [25] stringr_1.4.0 dplyr_1.0.7 purrr_0.3.4
## [28] readr_2.0.1 tidyr_1.1.3 tibble_3.1.4
## [31] ggplot2_3.3.5 tidyverse_1.3.1 Rmisc_1.5
## [34] plyr_1.8.6 lattice_0.20-44 pacman_0.5.1
##
## loaded via a namespace (and not attached):
## [1] readxl_1.3.1 backports_1.2.1 splines_4.1.1
## [4] usethis_2.0.1 TH.data_1.1-0 digest_0.6.28
## [7] htmltools_0.5.2 lmerTest_3.1-3 fansi_0.5.0
## [10] magrittr_2.0.1 memoise_2.0.0 remotes_2.4.0
## [13] tzdb_0.1.2 openxlsx_4.2.4 modelr_0.1.8
## [16] matrixStats_0.61.0 sandwich_3.0-1 prettyunits_1.1.1
## [19] colorspace_2.0-2 rvest_1.0.1 haven_2.4.3
## [22] xfun_0.26 callr_3.7.0 crayon_1.4.1
## [25] jsonlite_1.7.2 libcoin_1.0-9 Exact_3.1
## [28] survival_3.2-11 zoo_1.8-9 glue_1.4.2
## [31] gtable_0.3.0 pkgbuild_1.2.0 abind_1.4-5
## [34] mvtnorm_1.1-2 DBI_1.1.1 rstatix_0.7.0
## [37] Rcpp_1.0.7 xtable_1.8-4 tmvnsim_1.0-2
## [40] foreign_0.8-81 proxy_0.4-26 stats4_4.1.1
## [43] httr_1.4.2 ellipsis_0.3.2 modeltools_0.2-23
## [46] farver_2.1.0 pkgconfig_2.0.3 multcompView_0.1-8
## [49] dbplyr_2.1.1 utf8_1.2.2 labeling_0.4.2
## [52] tidyselect_1.1.1 rlang_0.4.11 reshape2_1.4.4
## [55] cachem_1.0.6 munsell_0.5.0 cellranger_1.1.0
## [58] tools_4.1.1 cli_3.0.1 generics_0.1.0
## [61] devtools_2.4.2 broom_0.7.9.9000 evaluate_0.14
## [64] fastmap_1.1.0 yaml_2.2.1 processx_3.5.2
## [67] fs_1.5.0 zip_2.2.0 coin_1.4-2
## [70] rootSolve_1.8.2.3 nlme_3.1-152 xml2_1.3.2
## [73] pbkrtest_0.5.1 compiler_4.1.1 rstudioapi_0.13
## [76] beeswarm_0.4.0 curl_4.3.2 testthat_3.0.4
## [79] e1071_1.7-9 ggsignif_0.6.3 reprex_2.0.1
## [82] DescTools_0.99.44 stringi_1.7.4 highr_0.9
## [85] ps_1.6.0 desc_1.3.0 nloptr_1.2.2.2
## [88] vctrs_0.3.8 pillar_1.6.2 lifecycle_1.0.0
## [91] lmtest_0.9-39 jquerylib_0.1.4 ucminf_1.1-4
## [94] estimability_1.3 data.table_1.14.0 cowplot_1.1.1
## [97] lmom_2.8 R6_2.5.1 rio_0.5.27
## [100] vipor_0.4.5 gld_2.6.4 sessioninfo_1.1.1
## [103] codetools_0.2-18 pkgload_1.2.2 boot_1.3-28
## [106] MASS_7.3-54 assertthat_0.2.1 rprojroot_2.0.2
## [109] withr_2.4.2 mnormt_2.0.2 multcomp_1.4-18
## [112] expm_0.999-6 hms_1.1.0 grid_4.1.1
## [115] coda_0.19-4 class_7.3-19 minqa_1.2.4
## [118] rmarkdown_2.11 numDeriv_2016.8-1.1 lubridate_1.7.10